跳转至

Nginx 502、站点慢、无特征攻击排查思路

一、502 Bad Gateway

含义

Nginx 作为反向代理,后端服务(Tomcat/PHP)没正常响应。

排查

  1. 看错误日志
    /var/log/nginx/error.log
    
  2. 后端是否挂了pssystemctl status tomcat
  3. 后端超时proxy_read_timeout 太短。
  4. 端口不通telnet backend 8080
  5. 连接数满:Tomcat maxThreads 满了。

常见原因

  • 后端进程 crash。
  • 后端慢,Nginx 等不及。
  • 后端重启。

二、站点慢

分层排查

  1. 网络层
  2. pingtraceroute 看延迟。
  3. curl -w 看各阶段耗时。
  4. DNS:DNS 解析慢。
  5. Nginx:看 access log 的 request_time。
  6. 后端应用:慢 SQL、GC、外部依赖。
  7. 数据库:慢查询日志。
  8. 前端:资源大小、并发请求数。

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,高频请求。
  • 撞库:用户名密码组合尝试。
  • 爬虫:抓取数据。

排查与防护

  1. 看 access log
  2. 同一 IP 请求频率异常高。
  3. UA 集中在某个版本。
  4. 访问路径异常(一直在翻页 / 遍历 ID)。
  5. 限流:Nginx limit_req_zone
  6. 验证码:登录、注册接口。
  7. 风控系统:行为分析。
  8. 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,逐层定位耗时点。