四、配置文件
大约 3 分钟约 927 字
(一)位置
/usr/local/nginx/conf/nginx.conf
- 由三部分组成
cd /usr/local/nginx/
ls
cd /conf
vim nginx.conf
(二)第一部分:全局块
- 从配置文件开始到
events
块之间的内容 - 主要会设置一些 影响 Nginx 服务器整体运行 的配置指令
1.主要包括
- 配置运行
Nginx
服务器的用户(组) - 允许生成的
worker express
数 - 进程
PID
存放路径 - 日志存放路径和类型
- 配置文件的引入等
2.示例
- 这是
Nginx
服务器并发处理服务的关键配置 worker_processes
值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约
worker_processes 1;
(三)第二部分:events 块
events
块涉及的指令主要 影响 Nginx 服务器与用户的网络连接
1.常用的设置
- 是否开启对多
work process
下的网络连接进行序列化 - 是否允许同时接收多个网络连接
- 选取哪种事件驱动模型来处理连接请求
- 每个
work process
可以同时支持的最大连接数等
2.示例
- 这表示每个
work process
支持的最大连接数是 1024 - 这部分的配置对
Nginx
的性能影响较大,在实际中应该灵活配置
events {
worker_connections 1024;
}
(四)第三部分:http 块
- 这是
Nginx
服务器配置中最频繁的部分 - 代理、缓存和日志定义等绝大多数功能和第三方模块的配置 都在这里
- 需要注意的是:
http
块也可以包括 http 全局块 和 server 块
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
1.http 全局块
http
全局块配置的指令包括- 文件引入
MIME-TYPE
定义- 日志自定义
- 连接超时时间
- 单连接请求数上限等
2.server 块
- 这和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本
- 每个
http
块可以包括多个server
块,而 每个 server 块就相当于一个虚拟主机 - 每个
server
块也分为全局server
块,以及可以同时包含多个location
块
server
块
1)全局 - 最常见的配置
- 本虚拟主机的 监听配置
- 本虚拟主机的 名称或 IP 配置
location
块
2)- 一个
server
块可以配置多个location
块 - 这块的主要作用是基于
Nginx
服务器接收到的请求字符串(例如server_name/uri-string
),对虚拟主机名称(也可以是IP
别名)之外的字符串(例如/uri-string
)进行匹配,对特定的请求进行处理 - 地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行
location [ = | ~ | ~* | ^~] uri {
}
模式字符串 | 含义 |
---|---|
= | 用于不含正则表达式的 uri 前要求请求字符串与 uri 严格匹配如果匹配成功,就停止继续向下搜索并立即处理该请求 |
~ | 用于表示 uri 包含正则表达式区分大小写 |
~* | 用于表示 uri 包含正则表达式不区分大小写 |
^~ | 用于不含正则表达式的 uri 前要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求不再使用 location 块中的正则 uri 和请求字符串做匹配 |
注意
如果 uri
包含正则表达式,则必须要有 ~
或者 ~*
标识