Nginx优化---连接超时与进程管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx优化---连接超时与进程管理相关的知识,希望对你有一定的参考价值。
配置nginx实现连接超时
在企业网站中,为了避免同一个客户长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现控制连接访问时间
使用Fiddler工具查看connection参数
超时参数
Keepalive_ timeout
#设置连接保持超时时间,-般可只设置该参数,默认为75秒,可根据
网站的情况设置,或者关闭,可在http段、server段、 或者location段
设置
Client_header_ timeout
#指定等待客户端发送请求头的超时时间
Client_ body_ _timeout
#设置请求体读超时时间
更改Nginx运行进程数
1.在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞
2.可以使用ps aux命令查看Nginx运行进程的个数
3.更改进程数的配置方法:配置文件,修改进程配置参数
4.修改配置文件的worker_ _processes参数
(1)一般设为CPU的个数或者核数
(2)在高并发情况下可设置为CPU个数或者核数的2倍
5.运行进程数多一些, 响应访问请求时,Nginx就不会临时启动新的进程提供服务,减少了系统的开销,提升了服务速度
6.使用ps aux查看运行进程数的变化情况
7.默认情况,Nginx的多个进程可能跑在一一个CPU上,可以分配不同的进程给不同的CPU处理,充分利用硬件多3核多CPU
8.在一台4核物理服务器,可进行以下配置,将进程进行分配:Worker_ cpu affinity 0001 0010 0100 1000
实例演示
一、Nginx连接超时演示
修改nginx.conf配置文件
[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost conf]# vim nginx.conf
#keepalive_timeout 0;
keepalive_timeout 65 180;
#服务端和客户端的超时时间,可在httpserverlocation中设置
client_header_timeout 80;
#等待客户端发送请求头部超时时间,超时会发送408错误
client_body_timeout 80;
#请求体超时时间
[root@localhost conf]# systemctl stop nginx
[root@localhost conf]# systemctl start nginx
二、Nginx进程管理演示
第一步:关闭虚拟机,添加CPU
第二步:查看此时Nginx进程信息
[root@localhost ~]# ps aux | grep nginx
root 1854 0.0 0.0 20544 608 ? Ss 14:17 0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx 1855 0.0 0.0 23072 1392 ? S 14:17 0:00 nginx: worker process
root 1859 0.0 0.0 112728 972 pts/0 S+ 14:18 0:00 grep --color=auto nginx
第三步:修改配置文件
[root@localhost ~]# cd /proc/
[root@localhost proc]# cat cpuinfo ##查看cpu核心数
processor : 0 ##第一个CPU
...
processor : 1 ##第二个CPU
...
[root@localhost proc]# vim /usr/local/nginx/conf/nginx.conf
#user nobody;
worker_processes 2;
#修改核数相同或者2倍
worker_cpu_affinity 01 10;
#设置每个进程有不同的CPU处理
以上是关于Nginx优化---连接超时与进程管理的主要内容,如果未能解决你的问题,请参考以下文章