6要terwq 发表于 2017-10-30 09:04:58

Nginx 之 全局配置段介绍

1概述Nginx的配置段不一样,同一指令的用法不一样。关于nginx更详细的配置,可以查看官方帮助文档http://nginx.org/en/docs/,本文将介绍全局配置段常见的配置指令
2全局配置段
Main 全局配置段常见的配置指令分类:.正常运行必备的配置.优化性能相关的配置.用于调试及定位问题相关的配置.事件驱动相关的配置全局性的配置一般比较少改动,默认选项可以满足一般的需求,可以根据实际情况进行调整2.1正常运行必备的配置.1、userSyntax:user user ;例子:
1
user nginx;




Default:user nobody nobody;
Context:main指定worker进程的运行身份,如组不指定,默认和用户名同名.2、pid/PATH/TO/PID_FILE指定存储nginx主进程PID的文件路径pid /run/nginx.pid;.3、includefile | mask指明包含进来的其它配置文件片断 例子:
1
include/usr/share/nginx/modules/*.conf;




.4、load_modulefile
模块加载配置文件:/usr/share/nginx/modules/*.conf指明要装载的动态模块路径: /usr/lib64/nginx/modules2.2性能优化相关的配置.1、worker_processesnumber | autoauto和number的区别auto 是nginx根据系统当前的情况开启进程数,模式是1个主进程,4个worker进程number是人为指定开启进程数量,比如设置8,那么总共是1个主进程,7个worker进程这里number不建议加太多,worker进程的个数通常应该为当前主机的cpu的物理核心数,可以略少,因为nginx是一个进程响应多个请求,不是线程处理。.2、worker_cpu_affinitycpumask ...worker_cpu_affinityauto 提高缓存命中率,机器运行时,内核的数量只能增加不能减少,如果要减少内核数,需要停机才能设置CPU MASK:00000001:0号CPU00000010:1号CPU10000000:8号CPU例子假设有4个内核,那么,内核的编号是0,1,2,3.设置如下, worker_cpu_affinity 0001 0010 1000 0100;表示第一个进程工作在0号内核第二个进程工作在1号内核第三个进程工作在3号内核第四个进程工作在2号内核如果这里设置为0000,则表示对应的进程不指定内核,随机工作在某个内核上。正常情况下,主进程是随机工作在任意进程下的进程具体工作在哪个内核,可以通过如下的命令进行查看
1
ps axo pid,cmd,psr,ni |grep nginx




.3、worker_priority   number
指定worker进程的nice值,设定worker进程优先级:[-20,20],值越小,优先级越高 .4、worker_rlimit_nofilenumberworker进程所能够打开的文件数量上限,如65535同时连接的数量受限于系统上可用的文件描述符的数量,因为每个套接字将打开一个文件描述符。如果NGINX尝试打开比可用文件描述符更多的套接字,会发现error.log中出现Too many opened files的信息。使用ulimit检查文件描述符的数量:$ ulimit -n。现在,将此值增加到大于worker_processes *worker_connections的值。应该是增加当前worker运行用户的最大文件打开数值。NGINX提供了worker_rlimit_nofile指令,这是除了ulimit的一种设置可用的描述符的方式。该指令与使用ulimit对用户的设置是同样的效果。此指令的值将覆盖ulimit的值,如:
1
worker_rlimit_nofile 20960;




2.3事件驱动相关的配置
event语法如下.events {...}events放在主配置文件里.1、worker_connectionsnumber每个worker进程所能够打开的最大并发连接数数量,如10240这个参数建议调大点,如果请求太多,导致客户连接不上而已,不至于浪费了资源总最大并发数:worker_processes* worker_connections.2、use method指明并发连接请求的处理方法,默认自动选择最优方法,为epoll.默认:useepoll;不需要配置.3、accept_mutex   on | off 互斥处理新的连接请求的方法;on指由各个worker轮流处理新请求,off指每个新请求的到达都会通知(唤醒)所有的worker进程,但只有一个进程可获得连接,造成“惊群”,影响性能,默认on2.4调试和定位问题.1、daemon on|off是否以守护进程方式运行nignx,默认是守护进程方式.如果是off就是前端运行。默认是守护进程on,为后台执行.2、master_processon|off是否以master/worker模型运行nginx;默认为on,如果设置为off 将不启动worker进程,主要是开发环境使用,关闭后没有worker进程,只有master提供服务。需要重启nginx服务后生效.3、error_logfile 错误日志文件及其级别;出于调试需要,可设定为debug;但debug仅在编译时使用了“--with-debug”选项时才有效方式:file /path/logfile;stderr:发送到标准错误
1
2
syslog:server-address[,parameter=values]:发送到syslogmemory:size内存
level:debug|info|notice|warn|error|crit|alter|emerg




例子
1
error_log/var/log/nginx/error.log;






页: [1]
查看完整版本: Nginx 之 全局配置段介绍