Nginx高并发最全详解(图文全面总结)

摘要:Nginx是大型架构的关键,也是实现高并发的关键,下面我就重点详解Nginx多少算高并发以及关键技术@mikechen

本文作者:陈睿|mikechen

文章来源:mikechen.cc

在一些大型互联网公司,比如:阿里的双11就是最经典的代表,每秒几十万的请求,这就是典型的高并发场景。

Nginx多少算高并发

一般,Nginx通常在几百...到几千个并发连接,就算有一定的并发量了。

如果Nginx并发连接超过几千到几万并发,这就算典型的“高并发”了。

Nginx 的性能,高度依赖于:Nginx配置,以及硬件配置、以及优化...等等。

比如: CPU 核心数、内存、磁盘 I/O /和网络带宽,以及优化...等等。

CPU核心数

每个worker进程通常会占用一个CPU核心,因此CPU核心数越多,理论上能支持的并发连接数就越多。

内存

内存大小,决定了Nginx可以缓存多少数据,以及能同时处理多少个连接。

网络带宽

当然还会包含:网络带宽,这会限制了Nginx能够处理的最大流量。

Nginx配置

要实现高并发,Nginx 需要进行特定的配置参数调整,例如:

worker_processes

worker_processes 4; # 设置为 CPU 核心数

设置 worker 进程数,通常为 CPU核心数,当然,你可以设置为和核数的 2-4 倍。。。等等;

worker_connections

worker_connections,设置每个工作进程能够打开的最大连接数,比如:为 1024、 或更大。

worker_connections 10240; # 每个 worker 进程最大连接数

keepalive_timeout

设置 keepalive 连接的超时时间,通常为 60-120 秒;

sendfile

启用 sendfile 选项,提高文件传输性能;

tcp_nopush

启用 tcp_nopush 选项,提高网络传输性能。

worker_rlimit_nofile

增加每个进程的文件描述符限制,避免连接数过多时出现问题。

比如:

ulimit -n 1000000 # 增加文件描述符的数量

当然,除此之外,还可以利用Nginx的多服务器来扩展集群。

总之,适当的配置调整、操作系统优化、和服务器集群...等等,是确保 Nginx 在高并发场景下的关键点。

来源:杜绝说万事

相关推荐