Nginx 502、站点慢、无特征攻击排查思路¶
一、502 Bad Gateway¶
含义¶
Nginx 作为反向代理,后端服务(Tomcat/PHP)没正常响应。
排查¶
- 看错误日志:
- 后端是否挂了:
ps、systemctl status tomcat。 - 后端超时:
proxy_read_timeout太短。 - 端口不通:
telnet backend 8080。 - 连接数满:Tomcat maxThreads 满了。
常见原因¶
- 后端进程 crash。
- 后端慢,Nginx 等不及。
- 后端重启。
二、站点慢¶
分层排查¶
- 网络层:
ping、traceroute看延迟。curl -w看各阶段耗时。- DNS:DNS 解析慢。
- Nginx:看 access log 的 request_time。
- 后端应用:慢 SQL、GC、外部依赖。
- 数据库:慢查询日志。
- 前端:资源大小、并发请求数。
curl 测耗时¶
curl -w "dns:%{time_namelookup} connect:%{time_connect} ttfb:%{time_starttransfer} total:%{time_total}\n" \
-o /dev/null -s https://www.example.com
三、无特征攻击¶
指没有固定攻击特征,WAF 规则挡不住的流量。
常见类型¶
- 刷接口:正常 UA、正常 URL,高频请求。
- 撞库:用户名密码组合尝试。
- 爬虫:抓取数据。
排查与防护¶
- 看 access log:
- 同一 IP 请求频率异常高。
- UA 集中在某个版本。
- 访问路径异常(一直在翻页 / 遍历 ID)。
- 限流:Nginx
limit_req_zone。 - 验证码:登录、注册接口。
- 风控系统:行为分析。
- WAF / CDN:前置清洗。
四、常用 Nginx 配置¶
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
location /api/ {
limit_req zone=api burst=20 nodelay;
proxy_pass http://backend;
}
排查思路
从外到内:客户端 -> 网络 -> Nginx -> 应用 -> DB,逐层定位耗时点。