Nginx 性能调优——Worker 进程、缓存与 Gzip 实战
Nginx 性能调优——云数方舟(YunArk) Worker 进程、缓存与 Gzip 实战
在 独立服务器 或 高防服务器 上,Nginx 通常是流量的第一入口。默认的 Nginx 配置往往比较保守,无法发挥硬件的全部性能。通过简单的参数调整,即可显著提升并发处理能力和网站响应速度,特别是在高防清洗后的正常流量转发场景中。
一、Worker 进程与连接数优化
Nginx 采用 Master-Worker 架构,性能调优的核心是让 Worker 进程充分利用 CPU 和内存。
# 编辑 nginx.conf
vim /etc/nginx/nginx.conf
# 关键参数
worker_processes auto; # 设置为 auto,Nginx 会自动匹配 CPU 核心数
worker_cpu_affinity auto; # 自动绑定 Worker 到 CPU 核心(提升缓存命中率)
worker_rlimit_nofile 65535; # Worker 进程最大打开文件数
events {
worker_connections 65535; # 单个 Worker 允许的最大并发连接数
multi_accept on; # 一次接受所有新连接
use epoll; # 使用高效的 epoll 事件模型(Linux)
}
计算最大并发:最大并发 ≈ worker_processes × worker_connections。例如 8 核 CPU × 65535 ≈ 52 万并发连接(理论值)。
二、开启 Gzip 压缩(减少传输体积)
Gzip 能将 HTML/CSS/JS 文件体积压缩 60–80%,大幅加快页面加载速度。
http {
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 5; # 压缩级别 1-9,5 是性价比平衡点
gzip_min_length 256; # 小于 256 字节不压缩
gzip_types
application/javascript
application/json
application/xml
text/css
text/plain
text/xml
image/svg+xml;
}
注意:图片(JPG/PNG)、视频、PDF 等二进制文件已自带压缩,无需再开 Gzip,反而浪费 CPU。
三、静态资源缓存(减少后端请求)
对于图片、CSS、JS 等不常变化的静态资源,设置浏览器缓存,减少重复请求。
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg)$ {
expires 365d; # 缓存 365 天
add_header Cache-Control "public, immutable";
access_log off; # 关闭访问日志,减少磁盘 IO
}
在 云数方舟 的高防架构中,静态资源缓存还能减轻后端源站的压力,让清洗后的正常流量更顺畅。
四、缓冲与超时设置(提升稳定性)
client_max_body_size 50m; # 允许最大上传文件 50MB client_body_buffer_size 128k; client_header_buffer_size 1k; proxy_connect_timeout 60s; # 连接后端超时 proxy_send_timeout 60s; # 发送请求超时 proxy_read_timeout 60s; # 读取响应超时 proxy_buffering on; proxy_buffer_size 32k; proxy_buffers 16 32k;
五、针对高防/代理环境的特殊配置
如果使用 云数方舟 BGP 高防,Nginx 通常作为反向代理。需确保正确获取真实访客 IP:
set_real_ip_from 高防IP段; # 告诉 Nginx 哪些是可信代理 real_ip_header X-Forwarded-For; # 从 Header 中获取真实 IP real_ip_recursive on;
六、调优后的检查与重载
每次修改配置后,务必执行:
nginx -t # 测试配置文件语法是否正确 systemctl reload nginx # 平滑重载,不中断服务
📌 查看云数方舟高性能服务器:
云数方舟官网 |
美国高性能独立服务器 |
香港高性能独立服务器
本文由 云数方舟(YunArk) 原创发布,转载请注明出处。