Nginx的全局配置文件说明
Nginx配置文件的主要配置块可以分为三个部分:全局配置块(events和http块),events块和http块。这三个部分共同定义了Nginx服务器的整体行为和处理HTTP请求的方式。
全局配置块:
包含了影响Nginx服务器整体行为的指令,如进程数、工作目录、错误日志级别、进程ID文件路径、用户和组设置等。
全局配置块中的指令对整个Nginx服务器实例生效。
events 块:
处理Nginx服务器与客户端的连接事件。
定义了工作进程数、连接数限制等影响服务器性能和稳定性的参数。
events块通常位于全局配置块内,也可以单独作为一个块。
http 块:
处理HTTP请求,是Nginx配置的核心部分。
包括了解析请求、生成响应、日志记录等指令。
http块可以包含多个子块,如server、location、upstream等,这些子块分别用于配置服务器设置、请求处理位置和后端服务器集群
nginx.conf配置文件说明
```powershell
指令名 指令值; #全局块,主要设置Nginx服务器整体运行的配置指令 在event和http之外的都是全局块
#events块,主要设置,Nginx服务器与用户的网络连接
events {
指令名 指令值;
}
#http块,是Nginx服务器配置中的重要部分,代理、缓存、日志记录、第三方模块配置...
http {
指令名 指令值;
server { #server块,是Nginx配置和虚拟主机相关的内容
指令名 指令值;
location / {
#location块,基于Nginx服务器接收请求字符串与location后面的值进行匹配,对特定请求进行处理
指令名 指令值;
}
}
...
}
``
nginx.conf配置文件中默认有三大块:全局块、events块、http块
http块中可以配置多个server块,每个server块又可以配置多个location块。
全局块
1.user:用于配置运行Nginx服务器的worker进程的用户和用户组。
语法 | user user [group] |
---|---|
默认值 | nobody |
位置 | 全局块 |
修改user配置 用户必须是存在Linux中的
如果没有用户可以通过以下命令创建一个
useradd jackwade
测试配置效果
在/root/html/下创建index.html页面,添加如下内容
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
<p><em>I am iron man</em></p>
</body>
</html>
修改nginx.conf配置文件
在对应http下的server模块下添加location配置如下:
./nginx -s reload 执行重载配置文件命令
访问也会提示403,没有权限
复制cp index.html /home/jackwade/html/
然后再次修改nginx.conf
location / {
#root html;
root /home/jackwade/html;
index index.html index.htm;
}
./nginx -s reload 重新加载配置文件
访问页面
通过ps -ef | grep nginx命令查看进程 ,可以看到工作进程是"jackwade"
通过上面的测试,使用user指令可以指定启动运行工作进程的用户及用户组。
work process
master_process:用于关闭 Nginx 的主进程模式,使其只运行一个单一的工作进程.
语法 | master_process [on off] |
---|---|
默认值 | master_process on; |
位置 | 全局块 |
master_process off;
作用:master_process:用于关闭 Nginx 的主进程模式,使其只运行一个单一的工作进程
- 性能影响: 关闭主进程模式会导致 Nginx 只运行一个单一的工作进程,从而不能充分利用多核处理器的优势,影响性能。
- 稳定性: 在生产环境中使用 master_process off; 可能会影响 Nginx 的稳定性和可扩展性,因此一般不建议在生产环境中使用。
- 调试用途: master_process off; 常用于开发和调试环境,以简化调试过程和配置测试
关闭后需要重启生效,查看进程里面则没有相应的Master和worker进程
关闭后查看效果 ps -ef | grep nginx
worker_processes
用于定义 Nginx 启动多少个工作进程。通常,设置为与服务器 CPU 核心数相同,以便充分利用多核处理器。
语法 | worker_processes [number|auto] |
---|---|
默认值 | worker_processes 1; |
位置 | 全局块 |
设置工作进程 worker_processes 2;
如果master_process off; 则worker processes 2 设置无效,将之前设置的master_process 注释掉。
同样的该设置需要重新启动才能生效
重启
设置后的效果
auto :设置成auto会自动适当的工作进程数,一般等于机器的 CPU 核心数。
daemon守护进程
daemon 指令用于控制 Nginx 是否以守护进程方式运行。默认情况下,Nginx 是以守护进程方式运行的。守护进程不会随着终端关闭而停止。
语法 | daemon [on | off] |
---|---|
默认值 | daemon on; |
示例 | daemon off; |
位置 | 全局块 |
pid
用来配置Nginx当前master进程的进程号ID存储的文件路径。
语法 | pid [文件路径] |
---|---|
默认值 | pid /usr/local/nginx/logs/nginx.pid |
位置 | 全局块、http、server、location |
error_log
用来配置Nginx的错误日志存放路径
语法 | error_log [文件路径] [级别] |
---|---|
默认值 | error_log /var/log/nginx/error.log warn; |
示例 | error_log /var/log/nginx/error.log debug; |
位置 | 全局块、http、server、location |
该属性也可以通过./configure --error-log-path=[PATH]来指定
其中日志级别的值有:debug|info|notice|warn|error|crit|alert|emerg,翻译过来为调试|信息|通知|警告|错误|临界|警报|紧急,这块建议设置的时候不要设置成info以下的等级,因为会带来大量的磁盘I/O消耗,影响Nginx的性能。
include
语法 | include [文件路径] |
---|---|
默认值 | 无 |
示例 | include /etc/nginx/conf.d/*.conf; |
位置 | 全局块 |
使用 include指令可以包含指定的配置文件中的配置内容到当前的配置文件中
例如我们include 一个 nginx_main.conf
nginx_main.conf配置内容如下
在全局块中添加include
测试配置文件
重新加载文件 nginx -s reload
查看进程,可以看到是4个jackwade进程,表明引入成功