Nginx的基本配置、运行配置、性能配置、事件配置

一、基本配置项

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>