Nginx配置文件
位置: vim /usr/local/nginx/nginx.conf
- 第一部分:全局块
- 从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配 置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以 及配置文件的引入等。
- 比如 worker_processes 1;处理并发数的配置
- 第二部分:event块
- 影响 Nginx 服务器与用户的网络连接
- 比如 worker_connections 1024; 支持的最大连接数为 1024
- 第三部分:http块
这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
?
- http全局块
- http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
- server块
这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了 节省互联网服务器硬件成本。 每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。 而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。
? ? ? ? 1)全局server块
????????????????listen:? 监听的地址:端口号(必写,端口默认80)
????????????????server_name: 为当前监听的服务命名(非必要)
? ? ? ? 2)location块
一个 server 块可以配置多个 location 块。 这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称 (也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓 存和应答控制等功能,还有许多第三方模块的配置也在这里进行。
- listen:? 监听的地址:端口号(必写,端口默认80)
- server_name: 为当前监听的服务命名(非必要)
- location:指定路径及操作
- root:指定文件目录
- index:指定返回的首页文件
- location [ = | ~ | ~* | ^~ ] url{? ? }
- 该指令用于匹配 URL。 语法如下:
- = :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配 成功,就停止继续向下搜索并立即处理该请求。
- ~:用于表示 uri 包含正则表达式,并且区分大小写。
- ~*:用于表示 uri 包含正则表达式,并且不区分大小写。
- ^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。
- 注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。
- try_files和return的使用及区别
- return返回状态信息:
??? location? / {
?? ??? ?return 400;
?? ?}
? ? ? ? ? ? ? ? ? ? ? ? 2.try_files返回状态信息:
?? ?location? / a {
???? ? ?try_files $uri $uri =400;
?? ?}
????????????????????????3.try_files配合@使用(将请求交给另一个请求处理)
?? ?location? / a {
?? ??? ?try_files $uri $uri? / @operate;
?? ?}
?? ?location?@operate?{
? ? ?? ?return 400;
?? ?}
????????????????????????4. return使用跳转
? ? ?location?/??{
? ??? ?return 302 http://www.baidu.com;
? ? ?}
????????????????5.allow :访问控制
?location?/??{
? ??stub_status on;? # 返回nginx状态信息
? ? allow 11.11.11.11; #?指定哪个ip可以访问
? ? deny all;? # 除了允许的其他都拒绝
?}
|