设为首页 收藏本站
查看: 587|回复: 0

[经验分享] Nginx 之 全局配置段介绍

[复制链接]

尚未签到

发表于 2017-10-30 09:04:58 | 显示全部楼层 |阅读模式
1  概述

Nginx的配置段不一样,同一指令的用法不一样。关于nginx更详细的配置,可以查看官方帮助文档http://nginx.org/en/docs/,本文将介绍全局配置段常见的配置指令

2  全局配置段
Main 全局配置段常见的配置指令分类:
.正常运行必备的配置
.优化性能相关的配置
.用于调试及定位问题相关的配置
.事件驱动相关的配置
全局性的配置一般比较少改动,默认选项可以满足一般的需求,可以根据实际情况进行调整
2.1  正常运行必备的配置
.1、user
Syntax:user user [group];
例子:
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_module  file
模块加载配置文件:/usr/share/nginx/modules/*.conf
指明要装载的动态模块路径: /usr/lib64/nginx/modules
2.2  性能优化相关的配置
.1、worker_processes  number | auto
auto和number的区别
auto 是nginx根据系统当前的情况开启进程数,模式是1个主进程,4个worker进程
number是人为指定开启进程数量,比如设置8,那么总共是1个主进程,7个worker进程
这里number不建议加太多,worker进程的个数通常应该为当前主机的cpu的物理核心数,可以略少,因为nginx是一个进程响应多个请求,不是线程处理。
.2、worker_cpu_affinity  cpumask ...
worker_cpu_affinity  auto [cpumask] 提高缓存命中率,机器运行时,内核的数量只能增加不能减少,如果要减少内核数,需要停机才能设置
CPU MASK:
00000001:0号CPU
00000010:1号CPU
10000000: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_nofile  number
worker进程所能够打开的文件数量上限,如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_connections  number
每个worker进程所能够打开的最大并发连接数数量,如10240
这个参数建议调大点,如果请求太多,导致客户连接不上而已,不至于浪费了资源
总最大并发数:worker_processes* worker_connections
.2、use method
指明并发连接请求的处理方法,默认自动选择最优方法,为epoll.
默认:useepoll;不需要配置
.3、accept_mutex   on | off 互斥
处理新的连接请求的方法;on指由各个worker轮流处理新请求,off指每个新请求的到达都会通知(唤醒)所有的worker进程,但只有一个进程可获得连接,造成“惊群”,影响性能,默认on
2.4  调试和定位问题
.1、daemon on|off
是否以守护进程方式运行nignx,默认是守护进程方式.如果是off就是前端运行。默认是守护进程on,为后台执行
.2、master_process  on|off
是否以master/worker模型运行nginx;默认为on,如果设置为off 将不启动worker进程,主要是开发环境使用,关闭后没有worker进程,只有master提供服务。需要重启nginx服务后生效
.3、error_log  file [level]
错误日志文件及其级别;出于调试需要,可设定为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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-406137-1-1.html 上篇帖子: Nginx 之 http配置段介绍 下篇帖子: centos7.4编译安装nginx
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表