配置项单位
当指定空间大小时,可以使用的单位包括:
K或者k千字节(KiloByte,KB)
M或者m兆字节(MegaByte,MB)
当指定时间时,可以使用的单位包括:
ms(毫秒),s(秒),m(分钟),h(小时),d(天),w(周,包含7天), M(月,包含30天),y(年,包含365天)。
调试进程和定位问题的配置项:
(1)是否以守护进程方式运行Nginx
语法: daemon on|off;
默认: daemon on;
(2)是否以master/worker方式工作
语法: master_process on|off;
默认: master_process on;
(3)error日志的设置
语法: error_log pathfile level;
默认: error_log logs/error.log error;
如果日志级别设定到debug,必须在configure时加入–with-debug配置项。
(4)是否处理几个特殊的调试点
语法: debug_points [stop|abort]
(5)仅对指定的客户端输出debug级别的日志
语法: debug_connection[IP|CIDR]
这个配置项实际上属于事件类配置,因此,它必须放在events{…}中才有效。它的值可 以是IP地址或CIDR地址。
events {
debug_connection 10.224.66.14;
debug_connection 10.224.57.0/24;
}
仅仅来自以上IP地址的请求才会输出debug级别的日志,其他请求仍然沿用 error_log中配置的日志级别。
注意:使用debug_connection前,需确保在执行configure时已经加入了–with-debug参 数,否则不会生效。
(6)限制coredump核心转储文件的大小
语法: worker_rlimit_core size;
通过worker_rlimit_core配置可以限制core文件的大小,从而有效帮助用户定位问题。
(7)指定coredump文件生成目录
语法: working_directory path;
正常运行的配置项:
(1)定义环境变量
语法: env TESTPATH=/tmp/;
(2)嵌入其他配置文件
include mime.types;
include vhost/*.conf;
(3)pid文件的路径
语法: pid path/file;
默认: pid logs/nginx.pid;
(4)Nginx worker进程运行的用户及用户组
语法: user username[groupname];
默认: user nobody nobody;
(5)指定Nginx worker进程可以打开的最大句柄描述符个数
语法: worker_rlimit_nofile limit;
(6)限制信号队列
语法: worker_rlimit_sigpending limit;
优化性能的配置项:
(1)Nginx worker进程个数
语法: worker_processes number;
默认: worker_processes 1;
(2)绑定Nginx worker进程到指定的CPU内核
语法: worker_cpu_affinity cpumask[cpumask...]
worker_cpu_affinity配置仅对Linux操作系统有效。Linux操作系统使用 sched_setaffinity()系统调用实现这个功能。
(3)SSL硬件加速
openssl engine -t
(4)系统调用gettimeofday的执行频率
语法: timer_resolution t;
(5)Nginx worker进程优先级设置
语法: worker_priority nice;
默认: worker_priority 0;
事件类配置项:
(1)是否打开accept锁
语法: accept_mutex[on|off]
默认: accept_mutext on;
(2)lock文件的路径
语法: lock_file path/file;
默认: lock_file logs/nginx.lock;
accept锁可能需要这个lock文件,如果accept锁关闭,lock_file配置完全不生效。
(3)使用accept锁后到真正建立连接之间的延迟时间
语法: accept_mutex_delay Nms;
默认: accept_mutex_delay 500ms;
(4)批量建立新连接
语法: multi_accept[on|off];
默认: multi_accept off
(5)选择事件模型
语法: use[kqueue|rtsig|epoll|/dev/poll|select|poll|eventport];
默认: Nginx会自动使用最适合的事件模型。
(6)每个worker的最大连接数
语法: worker_connections numbe