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;     
#服务端和客户端的超时时间,可在http\server\location中设置

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处理

发布了78 篇原创文章 · 获赞 6 · 访问量 2338

猜你喜欢

转载自blog.csdn.net/caozhengtao1213/article/details/103073728