Nginx的配置文件
本文最后更新于 2024年1月11日 晚上
Nginx
Nginx的配置文件
从配置文件开始到 events 块之间的内容
1 |
|
主要设置一些影响nginx 服务器整体运行的配置指令.
主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志
存放路径和类型以及配置文件的引入等。
- worker_processes:
1 |
|
这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约,一般有多少个CPU核就配置多少。
- events的配置:
1 |
|
events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。
上述例子就表示每个 work process 支持的最大连接数为 1024.
这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。
http全局块
http全局块配置的指令包括文件引入, MIME-TYPE定义, 日志自定义, 连接超时时间, 单连接请求数上限等.
1 |
|
其他配置
- 引入其他配置文件
1 |
|
- 默认的文件类型
1 |
|
- 优化配置
1 |
|
- 超时时间
1 |
|
server块★
1 |
|
这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。后面会详细介绍虚拟主机的概念。
每个 http 块可以包括多个 server 块,每个 server 块就相当于一个虚拟主机。
每个 server 块也分为全局 server 块,以及可以同时包含多个 location块。
其他配置
listen
1
listen 80;
用于配置网络监听. 主要有以下三种配置语法结构:
1
2
3listen *:80 | *:8080; # 监听所有80端口和8080端口
listen IP_address:port; # 监听制定的地址和端口号
listen IP_address; # 监听指定ip地址的所有端口server_name
1
server_name www.xxx.com;
用于虚拟主机的配置. 通常分为以下两种:
基于名称的虚拟主机配置
1
server_name www.xxx.com;
基于IP地址的虚拟主机配置
这种结构不需要考虑通配符和正则表达式的问题.
1
server_naem 192.168.3.1
location
1 |
|
这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是IP别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。
一个 server 块可以配置多个 location 块。
语法:
1 |
|
=
:用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。~
:用于表示 uri 包含正则表达式,并且区分大小写。~*
:用于表示 uri 包含正则表达式,并且不区分大小写。^~
:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。不接任何符号: 代表模糊匹配
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。
优先级: =
> ^~
> ~
| ~*
>模糊匹配
root
: 请求的文件的目录index
: 用于设置网站的默认首页1
index filename ...;
后面的文件名称可以有多个, 中间用空格隔开.
1
index index.html index.htm;