一、基本配置项
1、是否以守护进程的方式运行
语法:daemon on | off 默认:daemon on
2、是否以master / work的方式工作
语法:master_process on | off 默认:master_process on
3、error的日志设置
语法:error_log /{path}/{file} level 默认:error_log logs/error.log error level的范围:debug、info、notice、warn、error、crit、alert、emerg 如果设置为debug,在configure时,必须加上--with-debug的配置项
4、针对指定的客户端输出debug级的日志
语法:debug_connection {IP} | {CIDR} 例如: events{ debug_connection 10.224.66.14; debug_connection 10.224.57.0/24; }
5、核心转储文件的大小和路径
语法:worker_rlimit_core size 语法:working_directory path
二、正常运行配置项
1、定义环境变量
语法:env VAR | VAR=VALUE; 例如: env TESTPATH=/tmp/;
2、嵌入其他配置文件
语法:include /path/file 可以是相对路径,也可以是绝对路径 例如; 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; #wd=409600 设置一个worker进程可以打开的最大文件句柄数.配置要和系统的单进程打开文件数一致,千万不要再画蛇添足地除以worker_processes。我现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240, 总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。
6、限制信号队列
语法:worker_rlimit_sigpending limit; 设置每个用户发往nginx的信号队列的大小。也就是说,当某个用户的信号队列满了,这个用户再发送的信号量会被丢弃。
三、优化性能配置
1、Nginx worker进程个数
语法:worker_processes number,也可以配置成auto 默认:worker_processes 1
2、绑定Nginx worker进程到指定的CPU
语法:worker_cpu_affinity cpumask [cpumask] 例如: worker_processes 4; worker_cpu_affinity 1000 0100 0010 0001;
3、ssl硬件加速
语法:ssl_engine device 使用openssl engine -t 查看是否有ssl硬件加速设备.
4、Nginx worker进程优先级设置
语法:worker_priority nice; 默认:worker_priority 0;
四、事件类型配置
1、批量建立链接
语法:multi_accept [on|off] 默认:multi_accept off; 当事件模型通知有新链接时,尽可能地对本次调度中的客户端发起的所有TCP请求都将建立链接。
2、选择事件模型
语法:use [kqueue | rtsig | epoll |select | poll | /dev/poll | eventport] 默认:Nginx会自动选择最合适的事件模型,对于linux操作系统来说,可供选择的事件驱动模型有poll、select、epoll三种,epoll是性能最高的一种,这个需要linux版本2.6以上.
3、每个worker的最大链接
语法:worker_connection number