下面是一个简单的 nginx 配置文件:
user www www; worker_processes 2; error_log /var/log/nginx-error.log info; events { use kqueue; worker_connections 2048; }
上面配置文件中,分别使用了 user、worker_processes、error_log、events、use、worker_connections 六个指令,这些指令都是 nginx 提供的核心功能。
下面表格将逐一介绍 nginx 核心功能的每一个指令的含义和具体用法。核心功能如下表:
指令 | 描述 |
accept_mutex 指令 | 配置 nginx 工作进程是否将依次接受新连接 |
accept_mutex_delay 指令 | accept 锁后到真正建立链接之间的延迟时间,默认为500ms |
daemon 指令 | 设置 nginx 是否采用守护进程进行运行 |
debug_connection 指令 | 为指定的客户端连接启用调试日志,通过 IP 或者域名指定 |
debug_points 指令 | 用于 nginx 调试,可用来帮助用户调试 nginx |
env 指令 | 配置环境变量 |
error_log 指令 | 配置日志记录 |
events 指令 | nginx 连接处理配置块 |
include 指令 | 用来将另一个文件或与指定 mask 匹配的文件包含到配置中 |
load_module 指令 | 加载动态模块 |
lock_file 指令 | nginx 使用锁定机制来实现 accept_mutex 并序列化对共享内存的访问 |
master_process 指令 | 确定是否启动工作进程 |
multi_accept 指令 | 如果 multi_accept 被禁用,一个工作进程将一次接受一个新连接 |
pcre_jit 指令 | 配置解析时已知的正则表达式启用或禁用 “即时编译(just-in-time compilation)” (PCRE JIT) |
pid 指令 | 定义存储主进程进程 ID 的文件 |
ssl_engine 指令 | 定义硬件 SSL 加速器的名称 |
thread_pool 指令 | 定义用于多线程读取和发送文件而不阻塞工作进程(worker processes)的线程池的名称和参数 |
timer_resolution 指令 | 降低工作进程中的计时器(timer)的解析,从而减少 gettimeofday() 系统调用的次数 |
use 指令 | 指定要使用的连接处理方法 |
user 指令 | 定义工作进程使用的用户(user)和组(group)凭据 |
worker_aio_requests 指令 | 使用 aio 和 epoll 连接处理方式时,设置单个工作进程(worker process)的最大未完成异步 I/O 操作 |
worker_connections 指令 | 设置工作进程(worker process)可以打开的最大同时连接数 |
worker_cpu_affinity 指令 | 将工作进程绑定到 CPU 集,每个 CPU 集由允许的 CPU 的位掩码表示 |
worker_priority 指令 | 定义工作进程的调度优先级 |
worker_processes 指令 | 定义工作进程的数量 |
worker_rlimit_core 指令 | 更改工作进程的核心文件的最大大小 (RLIMIT_CORE) 的限制 |
worker_rlimit_nofile 指令 | 更改工作进程的最大打开文件数 (RLIMIT_NOFILE) 的限制 |
worker_shutdown_timeout 指令 | 为优雅关闭工作进程配置超时时间 |
working_directory 指令 | 定义工作进程(worker process)的当前工作目录 |