常见nginx配置文件的主上下文指令有哪些?
Nginx 由模块组成,这些模块由配置文件中指定的指令(directive)来控制。指令被分为简单指令和块指令。简单指令由名称和用空格分隔的参数组成,并以分号 (;) 结尾。块指令与简单指令具有相同的结构,但是在分号的位置,它以一组用大括号 ({ 和 }) 括起来的额外指令结束。如果块指令可以在大括号内包含其他指令,则称为上下文(例如:events、http、server 和 location)。
在 Nginx 中,主上下文(main context)是指指令在任何其他块或上下文之外的顶级上下文。以下是可以在主上下文中使用的指令:
- daemon:设置 Nginx 是否应该作为守护进程运行。
daemon on; # 将 Nginx 作为守护进程运行
- error_log:定义 Nginx 应该写入错误日志的文件路径。
error_log /var/log/nginx/error.log; # 将错误日志写入 /var/log/nginx/error.log 文件
- env:定义应设置为 Nginx 进程的环境变量。
env MY_VARIABLE=my_value;
- events:定义 Nginx 使用的事件处理模型。
events {
worker_connections 1024; # 每个工作进程可以处理的最大连接数
}
- http:定义 HTTP 服务器的行为,包括如何处理请求以及应返回什么响应。
http {
server_tokens off; # 禁用服务器标识
sendfile on; # 启用 sendfile
gzip on; # 启用 gzip 压缩
server: {
# ...
}
}
- include:包含其他配置文件。
include /etc/nginx/conf.d/*.conf; # 包含 /etc/nginx/conf.d/ 目录下的所有 .conf 文件
- pid:定义 Nginx 应该写入其进程 ID 的文件路径。
pid /var/run/nginx.pid; # 将进程 ID 写入 /var/run/nginx.pid 文件
- user:定义 Nginx 应该运行在哪个用户和组下。
user nginx nginx; # 将 Nginx 进程以 nginx 用户和 nginx 组的身份运行
- worker_cpu_affinity:为每个工作进程设置 CPU 亲和性。
- worker_processes:设置 Nginx 使用的工作进程数量。
worker_processes auto;
worker_cpu_affinity auto;
- worker_priority:设置每个工作进程的优先级。
worker_priority 10; # nice
- worker_rlimit_nofile:设置每个工作进程可以打开的最大文件数。
worker_rlimit_nofile 10240;
- worker_shutdown_timeout:设置工作进程在接收到关闭信号后退出的超时时间。
worker_shutdown_timeout 5s;
- worker_threads:设置每个工作进程使用的线程数。
worker_threads 8;
- worker_connections:设置每个工作进程可以处理的最大连接数。
worker_connections 1024;
这些指令提供全局设置,影响整个 Nginx 服务器的行为。每个指令提供特定的功能,并可用于配置服务器的不同方面。