nginx main配置项解析及优化

本文详细介绍了Nginx服务的配置,包括定义运行用户、错误日志路径及级别、PID文件位置、工作进程数量与CPU绑定、最大打开文件数限制以及进程优先级。通过合理配置,可以提升Nginx的性能和稳定性,避免如'too many open files'等问题。了解并优化这些设置对于提高服务器效率至关重要。
摘要由CSDN通过智能技术生成

1.user nobody;
功能:定义运行nginx服务的用户,还可以加上组,如 user nobody nobody;

2.error_log logs/error.log notice;
功能:定义错误日志路径以及日志级别,也可以定义到http、server、location里
错误日志级别:常见的错误日志级别有[debug|info|notice|warn|error|crit|alert|emerg],级别越高记录的信息越少。如果不定义默认是error,不要配置太低,会带来大量的磁盘I/O消耗。

3.pid logs/nginx.pid;
功能:定义nginx进程pid文件所在路径。

4.worker_processes
功能:定义工作进程的个数,是Nginx服务器实现并发处理服务的关键,受操作系统本身资源和能力,硬件设备等制约。
语法:
worker_processes number | auto;
number: 指定nginx进程最多可以产生多少个worker process(进程)数,默认值为1,最多开启8个;
auto: 设置此值,会自动根据核心数为生成对应数量的worker进程

linux查看核心数:
命令:lscpu 或者 cat /proc/cpuinfo | grep 'processor' | wc -l

5.worker_cpu_affinity
功能:将工作进程绑定到cpu集提升缓存的命中率,默认工作进程不绑定到任何特定的cpu
规定:cpu有多少个核,就有几位数,1代表内核开启,0代表内核关闭,该指令仅在FreeBSD和Linux上可用。
案例配置1:2 Core +8 worker_processes

worker_processes  8; 
worker_cpu_affinity 01 10 01 10 01 10 01 10;

案例配置2:4 Core + 4 worker_processes

worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;

案例配置3: 8 Core + 8 worker_processes

worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

案例配置4: 8 Core + 2 worker_processes

worker_processes  2; 
worker_cpu_affinity 10101010 01010101;

案例配置5:自动检测

worker_processes auto;
worker_cpu_affinity auto;

6.worker_rlimit_nofile 65535;
功能;定义nginx最多打开文件数限制。如果没设置的话,这个值为操作系统(ulimit -n)的限制保持一致(理论上这个值是最多打开文件数(ulimit -n)与nginx工作进程相除)。把这个值设高,nginx就不会有“too many open files”问题了。

调整此参数的值需要修改系统参数:
查看系统级的最大限制:cat /proc/sys/fs/file-max
查看用户级的限制:ulimit -a 或者 ulimit -n
修改进程的最大openfile数:vim /etc/security/limits.conf
在主配置文件最后加入下面两句

* soft nofile 65535
* hard nofile 65535

保存后注销重新登录生效
(修改系统的最大打开数 vim /etc/sysctl.conf 在最后一行添加 fs.file-max=35942900 保存退出后用 sysctl -p 命令使配置生效)

查看:
ps -elf | grep nginx 找到 nginx 的worker进程ID
cat /proc/31613/limits 查看其中的Max open files(31613为进程ID)

7.worker_priority
功能:进程优先级,数值越低优先级越高占用资源越多,默认10,值范围-20 ~ 20# 建议配置-10即可,最好别低于Linux系统进程-5优先级

实例:

user nginx;
worker_processes auto;

#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;
worker_cpu_affinity auto;
worker_rlimit_nofile 65535;
worker_priority -10;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值