配置文件
正常运行的必备配置:
1.user username [groupname];(推荐nginx)
以那个用户身份运行,以在configure指定的用户为准
2.pid /path/to/pid_filename;
指定nginx的pid文件
3.
worker_rlimit_nofile #;
指定一个worker进程能打开的最大文件描述符数量;
4.
worker_rlimit_sigpending #;
设定每一个用户可以发往worker进程的信号的数量;
autoindex on; #开启目录浏览
autoindex_exact_size off; #关闭以byte显示文件大小
autoindex_localtime on; #显示的文件时间为GMT时间
优化性能配置:
1. worker_processes #;
worker进程的个数;一般为物理cpu核心数量减1;
可能支持auto
2.
worker_cpu_affinity CPUMASK ;
CPUMASK:
00000001
00000010
worker_cpu_affinity 00000001 00000010 00000100;
3. ssl_engine device;
在存在ssl硬件加速器的服务器上,指定所使用的ssl硬件加速设备
4. timer_resolution t
每次内核事件调用返回时,都会使用gettimeofday()来更新nginx缓存时钟;timer_resolution用于定义每隔多久才会由gettimeofday()更新一次缓存时钟;
x86-64系统上,gettimeofday()代价已经很小,能够忽略此配置
5. worker_priority nice [-20~19]; 值越小越优先调用,
建议-10
跟事件相关的配置 events{}
1.accept_mutex [on|off]
是否打开nginx的负载均衡锁;此锁可以让多个worker进行轮流地、序列化地与新的客户端创建链接;而一般当一个worker进程的负载达到其上限的85%,master就尽量不在将请求调度此worker;
2.lock_file /path/to/lock_file; 锁文件
3.accept_mutex_delay #ns;
使用accept锁之后,只有一个worker能取得锁,一个worker进程为取得accept锁的等待时长,即用户创建等待的时间,若是某worker进程在某次试图取得锁时失败了,至少要等待#ns才能再一次请求锁:
默认500毫秒
4.multi_accept on|off;
是否容许一次性地响应多个用户请求,
默认为off
5.
use [
epoll|rtsig|select|poll]
指定使用那种模型,
建议让nginx自动选择
6.
worker_connections # ; worker_rlimit_nofile >=worker_connections
每一个worker可以并发响应的最大请求数,
若是为代理服务器的话,worker_rlimit_nofile=worker_commections*2
用于调试、定位问题:只调试nginx时使用
1.daemon [on|off];
关闭提供守护进程的模式,是否让nignx运行于后台;调试时应该为off,使得全部信息直接输出在控制台,默认为on
2.master_process on|off
是否以master/worker模式运行nginx,默认为on,调试时能够设置为off以方便追踪
3.error_log /path/to/error_log
level
(debug|info|
notice
|
warn
|
error
|crit|alert|emerg)
错误日志文件及其级别,调试时能够使用debug级别,但要求在编译时必须使用--with-debug启用debug功能,默认一般为error级别