高并发服务器搭建方案 linux高并发服务器开发

今天我们要讲的是Nginx服务器的高性能优化配置,以及如何让Nginx轻松实现10万并发访问。一般来说,一台正常的Nginx Linux服务器可以达到50万–60万次/秒的请求处理性能。如果对

本文最后更新时间:  2023-04-09 13:48:58

今天我们要讲的是Nginx服务器的高性能优化配置,以及如何让Nginx轻松实现10万并发访问。

一般来说,一台正常的Nginx Linux服务器可以达到50万–60万次/秒的请求处理性能。如果对Nginx服务器进行优化,可以稳定达到904000次/秒的处理性能,大大增加Nginx的并发访问。

这里需要特别说明的是:

1.本文中列出的所有配置都在我的测试环境中得到了验证。您需要根据您的服务器的情况来配置它们。

一、优化思路

分析:nginx将有以下两个限制来成功响应请求:

1.nginx接受许多tcp连接。能成立吗?

2.nginx响应流程。要打开很多文件,能打开吗?

所以只要优化以上两个限制,就可以大大提高Nginx的效率。

二、优化步骤

我们知道Nginx的工作流程如下图所示:

一、步骤:

1.找到Nginx服务器的瓶颈。

2.优化配置。

3.再应力试验

注意:一定要在配置修改后进行压力测试,这样可以观察哪种配置修改的优化效果最明显。这种有效的测试方法可以节省你很多时间。

二。找出Nginx

的瓶颈

1.打开Apache ab压力测试工具,输入以下命令:a b-n 200000-c 5000 http://localhost:8080/index . html。

2.检查Nginx状态信息

在浏览器中输入nginx的地址:http://127.0.0.1/status,查看nginx的状态信息。

注意连接和等待等参数。以便确定如何优化相关参数。

Nginx状态信息的打开方法这里就不详细描述了。如果不清楚,可以参考我之前的文章,Nginx总结(八)启用Nginx状态和状态参数的详细说明。

第三,优化配置

根据以上方法,一般来说,nginx配置文件中以下几项对优化比较有用:

Nginx优化配置项:

1)优化工作进程,cpu

worker_processes 8; // 根据CPU核数配置worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

2)事件处理模型的优化

NGX的连接处理机制是不同的操作系统会采用不同的I/O模型。在Linux下,nginx使用epoll的I/O复用模型,freebsd的kqueue的IO复用模型,solaris的/dev/pool的IO复用模型,windows的icop等。
为了根据不同的系统类型选择不同的事务处理模型,我们使用Centos,因此我们将nginx的事件处理模型调整为epoll模型。

events { worker_connections 10240; // use epoll;}

注意:当没有指定事件处理模型时,nginx会默认自动选择最佳的事件处理模型服务。

3)设置work_connections连接数

worker_connections 10240;

4)每个进程打开文件的最大数量

worker_rlimit_nofile 65535; # 一般等于ulimit -n系统值

5)保活超时会话保持时间

keepalive_timeout 60;

6)GZIP压缩性能优化

gzip on; #表示开启压缩功能gzip_min_length 1k; #表示允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取。默认值是0,表示不管页面多大都进行压缩,建议设置成大于1K。如果小于1K可能会越压越大gzip_buffers 4 32k; #压缩缓存区大小gzip_http_version 1.1; #压缩版本gzip_comp_level 6; #压缩比率, 一般选择4-6,为了性能gzip_types text/css text/xml application/javascript;  #指定压缩的类型 gzip_vary on; #vary header支持

7)代理超时设置

proxy_connect_timeout 90;proxy_send_timeout 90;proxy_read_timeout 4k;proxy_buffers 4 32k;proxy_busy_buffers_size 64k

8)高效的传输模式

sendfile on; # 开启高效文件传输模式。tcp_nopush on; #需要在sendfile开启模式才有效,防止网路阻塞,积极的减少网络报文段的数量。将响应头和正文的开始部分一起发送,而不一个接一个的发送。

Linux系统内核级别:

要达到nginx的最佳性能,除了优化Nginx服务本身,还需要Nginx服务器上的内核参数。

这些参数被追加到/etc/sysctl.conf中,然后执行sysctl -p才能生效。

1)调整系统同时发起的tcp连接数
net . core . somaxconn = 262144

2)允许等待收听。

net.core.somaxconn = 4096

TCP连接的快速恢复

4) tcp连接重用

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 1

5)不抵抗洪水袭击。

net.ipv4.tcp_syncookies = 0

net . IP v4 . tcp _ max _ orbonds = 262144 #该参数用于设置系统中不与任何用户文件句柄关联的TCP套接字的最大数量,其主要目的是防止Ddos攻击。

6)文件打开的最大数量

ulimit -n 30000

最后

以上介绍了高性能优化的Nginx服务器的配置。你可以按照我提供的方法逐个设置各个参数,看看相关的效果。这些都是一点一点试出来的,这样才能更好的理解每个参数的意义。

温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。