Nginx是大型架构核心,下面我详解Nginx如何提升10倍性能@mikechen
第一步:Linux内核优化
Nginx 的性能上限,很大程度上受到底层 Linux 内核能力的制约。

因此,首先应从操作系统层面入手,减少连接建立、文件读写和网络转发过程中的资源损耗。
重点改:文件句柄、TCP 连接、端口复用、TIME_WAIT 等。
# 提高文件句柄和端口限制(适配 Nginx worker_connections) fs.file-max = 1000000 net.core.rmem_default = 262144 net.core.rmem_max = 16777216 net.core.wmem_default = 262144 net.core.wmem_max = 16777216 # TCP 连接队列、连接数 net.core.netdev_max_backlog = 5000 net.core.somaxconn = 65535 net.ipv4.tcp_max_syn_backlog = 65535 # 快速回收、重用 TIME_WAIT,适合高并发短连接 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 0 # 仅在不使用 NAT 时可用 net.ipv4.tcp_fin_timeout = 30 # 提高端口重用能力 net.ipv4.ip_local_port_range = 1024 65535 net.ipv4.tcp_max_tw_buckets = 2000000 # 并发连接数、内存 net.ipv4.tcp_max_orphans = 65535 net.ipv4.ip_forward = 1
第二步:Nginx worker优化
在操作系统基础打牢之后,下一步就是优化 Nginx 自身的工作方式。
Nginx 的高性能,核心在于其事件驱动、异步非阻塞的模型。

但如果 worker 参数设置不合理,依然会浪费大量性能。
# worker 进程数:一般是 CPU 核数或 auto
worker_processes auto; # 自动匹配核心数
worker_rlimit_nofile 65535; # 限制 worker 能打开的文件数(与 ulimit 对齐)
events {
# worker 工作模型:高并发推荐 epoll
use epoll;
# 每个 worker 进程最大并发连接数(撑到 1W 甚至 4W 级)
worker_connections 10240;
# 多 worker 争抢同一个端口时更公平
multi_accept on;
}
# 可选:reuseport(Linux 3.9+)
# worker_processes 4; # 4 核 CPU,4 个 worker
# 在 listen 指令中加上 reuseport,让每个 worker 独立监听
调整 worker_connections 到 10 240~40 960,确保 worker_processes × worker_connections 能支撑目标并发数。
第三步:网络架构优化
即使单机 Nginx 性能很强,如果网络架构设计不合理,整体系统依然难以扩展。
因此,第三步要从架构层面降低链路复杂度,并尽可能把请求流量分散到合适的位置。
一种常见且有效的方式,是采用多层负载均衡架构,例如“CDN + SLB + Nginx + 应用服务”。

通过 CDN 缓存静态资源,可以将大量请求挡在边缘节点,减少源站压力。
通过上层负载均衡分流,可让多台 Nginx 实例并行处理流量,避免单点瓶颈。
第四步:业务层优化
真正决定系统性能上限的,往往不是 Nginx 本身,而是业务链路是否足够轻量。

Nginx 只是入口,若后端业务逻辑复杂、数据库慢查询频繁、接口设计臃肿,再好的前端优化也难以产生持续收益。
因此,业务层优化应优先从减少响应时间入手。
可以通过接口拆分、结果缓存、异步化处理等方式,减少同步阻塞。