核心模块
Nginx核心模块只有ngx_core_module一个模块,提供一些基本配置指令和核心功能,影响Nginx全局行为。
指令
include指令
include指令可以在任意上下文中使用,但在不同块中需要保证相应的语法正确。
nginx
# 模式匹配
include conf.d/*.conf;
http {
# 特定文件 需要满足http上下文语法
include mime.types;
# 模式匹配 需要满足http上下文语法
include conf.d/http/*.conf;
}
# 模式匹配
include conf.d/*.conf;
http {
# 特定文件 需要满足http上下文语法
include mime.types;
# 模式匹配 需要满足http上下文语法
include conf.d/http/*.conf;
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
main上下文
main上下文为配置根路径,没有相应指令与之对应。
指令名称 | 参数类型 | 默认值 | 作用描述 |
---|---|---|---|
daemon | on/off | on | nginx是否以守护进程方式运行 |
debug_points | abort/stop | - | 用于nginx出错时生成debug文件进行分析 |
env | key[=value] | env TZ; | 用于创建或继承或继承并修改nginx进程的环境变量 |
error_log | file [level] | logs/error.log error | 配置日志文件路径及级别,级别可选值debug、info、notice、warn、error、crit、alert、emerg |
load_module | file | - | 用于动态模块加载,自1.9.11版本后支持,动态加载编译好的模块 |
lock_file | file | logs/nginx.lock | 在某些不支持原子锁的系统会生成一个文件锁 |
master_process | on/off | on | 用于确定工作进程已启动,适用于nginx开发人员 |
pcre_jit | on/off | off | 启用或禁用对正则表达式的及时编译 |
pid | file | logs/nginx.pid | 记录nginx进程号的文件 |
ssl_engine | device | - | 指定硬件ssl加速设备,可以通过openssl engine -t命令查看 |
thread_pool | string threads=number [max_queue=number ] | default threads=32 max_queue=65536 | 读取发送文件的线程池配置 |
timer_resolution | time | - | 默认情况下每次事件都会去获取时间,配置间隔后,只会在每个间隔时间内调用一次 |
use | select/poll/kqueue/ epoll/eventport//dev/poll | - | 指定连接处理方法,一般来说nginx会根据平台自己选择最优方法 |
user | string [string ] | - | 设置Nginx进程的运行用户和用户组 |
worker_processes | number /auto | 1 | 工作进程数量,设置为auto将自动检测为cpu核心数量 |
worker_rlimit_core | number | - | RLIMIT_SORE文件数量限制 |
worker_rlimit_nofile | number | - | RLIMIT_NOFILE文件数量限制 |
worker_shutdown_timeout | time | - | 优雅关闭工作进程的时长,超过这个时长将直接关闭所有连接 |
working_directory | direcotry | - | 自定义指定工作目录 |
events上下文
指令名称 | 参数类型 | 默认值 | 作用描述 |
---|---|---|---|
accept_mutex | on/off | off | 是否开启网络事件锁,开启则工作进程轮流处理连接 |
accept_mutex_delay | time | 500ms | 当启用了accept_mutex,用于配置工作进程获取网络事件锁之前的等待时间 |
debug_connection | address/CIDR/unix: | - | 针对配置连接信息开启debug日志,否则按照error_log指令进行日志 |
multi_accept | on/off | off | 如果禁用multi_accept,工作进程同一时间只接受一个连接,否则接收所有连接,指令受Connection processing method影响 |
worker_aio_requests | number | 32 | 每个工作进程aio异步i/o操作最大数量 |
worker_connections | number | 512 | 工作进程同时可以打开的连接数量 |
worker_cpu_affinity | auto [cpumask] | - | 工作进程和cpu绑定关系 |
worker_priority | number | 0 | 定义工作进程优先级,数字越小优先级越高,可取值范围[-20, 20] |