# Nginx连接数过高排查与优化方案
线上服务器偶尔出现访问卡顿、502、504报错,很多时候是Nginx连接数打满导致。下面整理宝塔环境下的排查步骤和优化方式,方便日常运维排查。
## 一、先查看当前连接状态
进入SSH执行命令,查看当前Nginx所有连接:
```bash
netstat -an | grep :80 | wc -l
也可以用 Nginx 自带状态模块查看更详细信息:
curl http://127.0.0.1/nginx-status
常见状态解释:
- Active connections:当前活跃总连接
- Reading:nginx 正在读取客户端请求
- Writing:正在向客户端返回数据
- Waiting:长连接空闲等待
如果 Active connections 持续跑满,就需要进一步分析。
二、排查来源 IP,判断是爬虫还是真实访问
netstat -an | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -20
``
条命令统计访问 IP,找出高频请求 IP。
– 如果大量 IP 是搜索引擎爬虫:考虑对爬虫做访问限速
– 如果是单个陌生 IP 大量请求:大概率是 CC 攻击,可以在宝塔防火墙拉黑
## 三、核心参数优化(宝塔修改 Nginx 配置)
修改 nginx.conf,调整这几个关键参数:
```bash
worker_processes auto;
events {
worker_connections 1024;
multi_accept on;
}
worker_connections 是单个进程最大连接数,不要盲目拉满,受系统文件句柄限制。 同时调整系统最大打开文件数:
ulimit -n 65535
四、长连接 keepalive 配置
长连接可以减少握手开销,但过长的超时时间容易堆积空闲连接。
keepalive_timeout 60;
一般设置 60 秒足够,不需要设置几百秒。
五、其它优化点
小结
连接数高排查顺序:
参考资料
- 站点笔记:xawxv.com



