centos7 nginx优化

优化nginx进程个数的策略

在高并发、高访问量的web服务场景,需要事先启动好更多的nginx进程,以保证快速响应并处理大量并发用户的请求。

worker_processes  1;一般调整到与CPU的颗数相同

查看LInux可查看CPU个数及总核数

grep processor /proc/cpuinfo|wc -l

优化绑定不同的nginx进程到不同的CPU上

默认情况下,nginx的进程跑在某一个CPU或CPU的某一个核上,导致nginx进程使用硬件的资源不均,本节的优化是不同的nginx进程给不同的CPU处理,充分有效的利用有效的硬件资源
四核cpu配置
worker_processes    4;
worker_cpu_affinity 0001 0010 0100 1000;

双核配置
worker_processes    2;
worker_cpu_affinity 0101 1010;

调整nginx单个进程允许的客户端最大连接数

参数语法:worker_connections number 
默认配置:worker_connections 512 
放置位置:events 标签  

events {
    
    
    worker_connections  1024;    #一个worker进程的并发
}
总并发= worker_processes* worker_connections

配置nginx worker进程最大打开文件数

参数语法:worker_rlimit_nofile number 
放置位置:主标签段 
说明:作用是改变worker processes能打开的最大文件数

worker_rlimit_nofile 65535;
这各参数受系统文件的最大打开数限制,解决方法:

[root@admin nginx]# cat /proc/sys/fs/file-max
8192
文件系统最大可打开文件数

配置nginx worker进程最大打开文件数

要想ulimits 的数值永久生效,必须修改配置文件/etc/security/limits.conf 
在该配置文件中添加

* soft nofile 65535   
* hard nofile 65535  

echo "* soft nofile 65535"  >> /etc/security/limits.conf

echo "* hard nofile 65535"  >> /etc/security/limits.conf

* 表示所用的用户

linux最大打开文件数

修改系统总限制
其实上的修改都是对一个进程打开的文件句柄数量的限制,我们还需要设置系统的总限制才可以。

假如,我们设置进程打开的文件句柄数是1024 ,但是系统总线制才500,所以所有进程最多能打开文件句柄数量500。从这里我们可以看出只设置进程的打开文件句柄的数量是不行的。所以需要修改系统的总限制才可以。
echo  6553560 > /proc/sys/fs/file-max

修改nginx.conf
worker_rlimit_nofile 65535;

nginx事件处理模型优化

nginx的连接处理机制在于不同的操作系统会采用不同的I/O模型,Linux下,nginx使用epoll的I/O多路复用模型,在freebsd使用kqueue的IO多路复用模型,在solaris使用/dev/pool方式的IO多路复用模型,在windows使用的icop等等。 
要根据系统类型不同选择不同的事务处理模型,选择有“use [ kqueue | rtsig |epool |dev/pool |select |pllo ];”我们使用的是Centos6.5的linux,因此将nginx的事件处理模型调整为epool模型。

events {
    
    
    worker_connections  1024;
    use epoll;
}

隐藏版本号

一般来说,软件的漏洞都和版本相关,所以我们要隐藏或消除web服务对访问用户显示的各种敏感信息。

vim /usr/local/nginx/conf/nginx.conf
在http模块下加入:
server_tokens off;

粉丝福利
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/MRzhangshuang/article/details/143176477