服务器Nginx性能调优:从连接数到缓存的实操配置

服务器Nginx性能调优不是把参数改大就完事,而是先搞清楚瓶颈在连接数、进程数还是资源传输。
对零基础用户来说,最稳妥的做法是先备份配置,再按进程、连接、压缩、缓存四个方向逐步调整,每改一步用 nginx -t 校验并重载,最后用压测工具确认效果。

调优前先确认环境和备份

动手前先确认 Nginx 的安装方式和配置文件位置,不同系统的路径不一样。
用下面命令查看:

nginx -v
nginx -t
ps -ef | grep nginx

常见配置目录:

  • 宝塔面板:/www/server/nginx/conf/nginx.conf
  • 源码编译:通常是 /usr/local/nginx/conf/nginx.conf
  • apt/yum 安装:/etc/nginx/nginx.conf

改任何配置前先备份,出问题能快速回滚:

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

如果用的是宝塔,也可以在面板「软件商店」找到 Nginx,点「配置修改」后再操作,改完点「重载配置」即可。

进程与连接数:别只盯一个参数

Nginx 的并发能力主要由 worker_processes 和 worker_connections 决定。
前者是工作进程数,后者是每个进程能处理的连接数。

在 nginx.conf 顶部调整:

worker_processes auto;
worker_rlimit_nofile 65535;

events {
    worker_connections 10240;
    multi_accept on;
    use epoll;
}

说明几点:

  • worker_processes auto 让 Nginx 按 CPU 核心数自动分配,比手写固定值更省心。
  • worker_rlimit_nofile 提高单进程可打开文件数,需要系统 ulimit -n 也放开,否则不生效。
  • use epoll 是 Linux 下的高效事件模型,现代版本一般已默认。

改完执行:

nginx -t && nginx -s reload

看到 syntax is ok 和 test is successful 才算通过。

开启Gzip和连接复用减少传输开销

文本类内容开启 Gzip 能明显降低传输体积。
在 http 块中加入:

gzip on;
gzip_min_length 1k;
gzip_comp_level 5;
gzip_types text/plain text/css application/json application/javascript text/xml;
gzip_vary on;

gzip_comp_level 不建议拉到 9,压缩率提升有限但更耗 CPU,5 左右比较均衡。

连接复用方面,保持长连接可以省去频繁握手:

keepalive_timeout 65;
keepalive_requests 1000;

另外,静态资源建议设置缓存头,让浏览器少发请求:

location ~* \.(jpg|jpeg|png|gif|css|js|ico)$ {
    expires 7d;
    add_header Cache-Control "public";
}

常见坑:改完没生效或服务起不来

调优过程中最容易踩的几个问题:

  • 只改 Nginx 没改系统限制。worker_rlimit_nofile 要配合 /etc/security/limits.conf 里的 nofile 一起放开,否则连接数上不去。
  • 直接 nginx -s reload 前没做语法检查,配置写错会导致重载失败,线上最好先 nginx -t。
  • 把 worker_connections 设得过大,超过系统文件描述符上限,反而出现 too many open files 报错。
  • Gzip 对图片、视频无效,重复压缩只是浪费 CPU。
  • 改了配置忘记重载,一直以为没生效。

如果重载后服务异常,用备份文件覆盖回去再重载即可恢复。

怎么验证调优有没有效果

配置生效后,用压测工具对比调整前后的表现。
安装 ApacheBench:

ab -n 1000 -c 100 http://你的域名/

重点看两个指标:

  • Requests per second:每秒处理请求数,越高越好。
  • Failed requests:失败请求数,理想为 0。

同时观察服务器负载:

top
ss -s

如果 CPU 没打满但 QPS 上不去,瓶颈可能在磁盘或后端应用;
如果 CPU 打满,再考虑是否继续加进程或换更强的机器。
调优是逐步验证的过程,不要一次改一堆参数。

几个新手常问的问题

改完配置需要重启还是重载?

用 nginx -s reload 即可,它会平滑加载新配置,不中断已有连接。
只有改动监听端口等少数情况才需要重启。

worker_connections 设多大合适?

没有万能值。
先看服务器内存和 ulimit -n,一般从 10240 起步,压测时观察是否出现连接拒绝,再逐步调整。

开了缓存会不会导致更新不生效?

浏览器缓存时间设太长时,用户可能看到旧文件。
发布新版本时可以用文件名加哈希,或在面板手动刷新 CDN 和浏览器缓存来解决。

分享到:
上一篇
服务器Java应用性能调优:从定位瓶颈到JVM参数调整
下一篇
服务器混沌工程实践:从零搭建故障注入验证环境
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意