Nginx优化之高并发配置,支持2万到3万并发量

Nginx安装

安装过程在下面的文章当中,里面详细的介绍了Nginx服务的安装过程。
Nginx编译安装详细过程

Nginx服务的启停控制

Nginx启停控制的办法中一共有两种方法可以用来对Nginx服务的进行启停操作。
Nginx服务的启停控制

压力测试

使用压力测试来对网页进行高并发测试,就能看出WEB服务器的并发量,这里使用Apache自带的ab压力测试工具进行测试。
ab压力测试的安装、使用、破2万并发测试

高并发简介

高并发(High Concurrency)通常是指通过设计保证系统能够同时并行处理很多请求。通俗来讲,高并发是指在同一个时间点,有很多用户同时的访问同一 API 接口或者 Url 地址。它经常会发生在有大活跃用户量,用户高聚集的业务场景中。

Nginx高并发配置

Nginx优化的方法有三种,第一种是优化Linux内核参数,使内核变的更为强大,第二种是优化Nginx配置文件,使Nginx变的更加强大,第三种是扩展服务器的CPU和内存,使服务器变的更加强大。

Linux内核参数优化

vim /etc/sysctl.conf		#修改内核参数文件
添加:
net.core.netdev_max_backlog = 262144			#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包的最大数目
net.core.somaxconn = 262144						#调节系统同时发起的TCP连接数
net.ipv4.tcp_max_orphans = 262144				#设定系统中最多允许存在多少tcp套接字不被关联到任何一个用户文件句柄上
net.ipv4.tcp_max_syn_backlog = 262144			#记录的那些尚未收到客户端确认信息的连接请求的最大值
net.ipv4.tcp_tw_recycle = 1						#开启TCP连接中TIME-WAIT sockets的快速回收
net.ipv4.tcp_tw_reuse = 1						#允许将TIME-WAIT sockets重新用于新的TCP连接
net.ipv4.tcp_syncookies = 0						#当出现SYN等待队列溢出时,禁用cookies来处理
net.ipv4.tcp_synack_retries = 1					#设置内核放弃TCP连接之前向客户端发送SYN+ACK包的数量
net.ipv4.tcp_ack_retries = 1					#该参数的作用与上一个参数类似,设置内核放弃建立连接之前发送SYN包的数量

sysctl -p		#执行操作

Nginx配置文件优化

vim /usr/local/nginx/conf/nginx.conf
覆盖(根据里面的参数进行修改):
全局域:
worker_processes  8;			#工作进程数
worker_cpu_affinity 0001 0010 0100 1000 0001 0010 0100 1000;	#指定cpu内核来运行工作进程,我的是四核CPU,所以是这样,如果是八核CPU就是00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000,以次类推
worker_rlimit_nofile 65535;		#工作进程最大打开文件数

event域:
use epoll;						#使用epoll事件驱动模型
worker_connections 65535;		#工作进程最大连接数
multi_accept on;				#设置工作进程同时接收多个网络连接

http域:
sendfile on;					#允许sendfile方式传输文件
send_timeout 10s;				#设置服务器和客户端连接超时时间
client_header_buffer_size 4k;	#客户端请求头部的缓冲区大小
tcp_nopush on;					#在一个数据包里发送所有头文件,而不一个接一个的发送
tcp_nodelay on;					#不要缓存数据
keepalive_timeout 0;			#服务器和客户端保持活动的时间是65秒,60秒后服务器和客户端断开连接,高并发时可以设置为0

扩展服务器的CPU和内存

这个就不在这里说了,这个大家都懂的操作,再说就没意义了。无非就是联系厂商增加CPU和内存,或者自己买CPU和内存,是云上的就扩展CPU和内存就可以了。

测试结果

看下图,本地测试时可以支持2.5w(个人PC4核8G)的并发数了,真实环境的话肯定没有这么多,因为还有很多因素,比如网络问题、服务器性能等。
Nginx优化之高并发配置,支持2万到3万并发量_第1张图片

你可能感兴趣的:(Linux运维)