news 2026/7/10 18:34:50

Nginx 反向代理排障:502、超时和连接耗尽怎么定位

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Nginx 反向代理排障:502、超时和连接耗尽怎么定位

一、先把链路拆开看

Nginx 常见角色是入口代理、静态资源服务器和负载均衡器。故障发生时,前端看到的通常只是 502、504 或连接超时,但真实原因可能在 Nginx、上游应用、网络、DNS 或连接池。排障第一步是拆链路:客户端到 Nginx 是否通,Nginx 到 upstream 是否通。

状态码含义要分清。502 多数表示上游异常响应或连接失败;504 表示等上游响应超时;499 表示客户端主动断开,常见于移动网络、浏览器取消请求或客户端超时小于服务端处理时间。

现象常见原因首选排查点
502upstream 拒绝连接、进程崩溃error.log
504上游慢、代理超时太短upstream 响应时间
499客户端断开请求耗时
偶发慢连接池耗尽、DNS 抖动指标和系统资源

二、日志格式要能看出上游耗时

默认 access log 信息不够。生产环境建议加上 upstream 地址、上游状态码、请求总耗时、上游响应耗时。

log_format main_ext '$remote_addr "$request" ' 'status=$status bytes=$body_bytes_sent ' 'rt=$request_time urt=$upstream_response_time ' 'ua="$upstream_addr" us="$upstream_status" ' 'agent="$http_user_agent"'; access_log /var/log/nginx/access.log main_ext; error_log /var/log/nginx/error.log warn;

配置完成后用nginx -t检查,再 reload。不要直接 restart,除非可以接受中断。排查时可用awk筛出慢请求。

nginx-tnginx-sreloadawk'$0 ~ /rt=/ {print}'/var/log/nginx/access.log|tail-20tail-100/var/log/nginx/error.log

如果request_timeupstream_response_time都高,瓶颈多半在上游应用;如果 upstream 时间为空,可能是请求没有到达 upstream。

三、代理超时和连接复用要成套配置

很多 504 是上游确实慢,也有一部分是 Nginx 超时配置和业务接口不匹配。更好的做法是把慢接口异步化,普通 API 维持短超时。

upstream api_backend { server 10.0.1.11:8080 max_fails=3 fail_timeout=10s; server 10.0.1.12:8080 max_fails=3 fail_timeout=10s; keepalive 128; } server { listen 80; server_name api.example.com; location / { proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header Host $host; proxy_connect_timeout 3s; proxy_send_timeout 30s; proxy_read_timeout 30s; proxy_pass http://api_backend; } }

keepalive能减少到上游的连接建立成本,但上游应用也要能承受长连接和并发连接数。Nginx 这边调大不代表后端就能扛住。

ulimit-nss-sss-antp|grep':8080'|headcat/proc/sys/net/core/somaxconn

四、静态资源和压缩别混在业务故障里

Nginx 常同时代理 API 和静态资源。静态文件路径、缓存头、gzip 配置不当,也会让页面变慢,但它和 502 不是一类问题。建议把静态资源和 API 的 location 分开。

location /assets/ { root /var/www/app; expires 30d; add_header Cache-Control "public, max-age=2592000, immutable"; try_files $uri =404; } location /api/ { proxy_pass http://api_backend; }

实践建议:先把 access log 扩展到能看到 upstream,再建立固定排障顺序:查状态码分布、看 error.log、确认 upstream 健康、检查连接,最后再改超时或负载均衡策略。入口配置小步修改、先nginx -t、再 reload。


如果你正在学习云原生或搭建个人项目,推荐试试腾讯云轻量应用服务器,新用户专享优惠,一键部署开发环境非常方便:点击查看优惠

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 18:33:20

基于STM32单片机PM2.5空气质量温湿度检测 WIFI 大棚环境监测 123(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于STM32单片机PM2.5空气质量温湿度检测 WIFI 大棚环境监测 123(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 WIFI云平台传输烟雾PM2.5温湿度声光报警 版本0: STM32F103C8T6单片机进行数据处理PM2.5检测当前粉尘…

作者头像 李华
网站建设 2026/7/10 18:32:54

2026年广东地区生产轻质耐火砖的企业哪家比较好?

2026年广东地区生产轻质耐火砖的企业,综合实力表现突出的有圣原耐火材料。它是深耕高温耐火保温领域26年的老牌厂商,拥有正规合规资质与全流程定制服务能力,产品适配性强,性价比优势突出,是细分领域值得选择的专业供应…

作者头像 李华
网站建设 2026/7/10 18:32:41

Honey Select 2完整汉化增强补丁:终极游戏体验优化指南

Honey Select 2完整汉化增强补丁:终极游戏体验优化指南 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 如果你正在玩《Honey Select 2》但遇到语言障…

作者头像 李华
网站建设 2026/7/10 18:32:17

STM32与PAM8904实现高保真智能音频报警系统

1. 项目背景与核心组件选型在工业控制、智能家居和物联网设备中,可靠的声音警报系统是确保关键信息及时传达的关键组件。传统蜂鸣器方案存在音量不足、功耗高、音质差等问题,而基于STM32F091RC微控制器搭配PAM8904压电驱动器的解决方案,能够实…

作者头像 李华
网站建设 2026/7/10 18:32:14

5分钟掌握:Duix Avatar本地AI数字人克隆完整终极指南

5分钟掌握:Duix Avatar本地AI数字人克隆完整终极指南 【免费下载链接】Duix-Avatar 🚀 Truly open-source AI avatar(digital human) toolkit for offline video generation and digital human cloning. 项目地址: https://gitcode.com/GitHub_Trendin…

作者头像 李华
网站建设 2026/7/10 18:31:00

用华为云码道 CLI/TUI 从零开发「幸运跑马灯抽奖」网页应用

用华为云码道 CLI/TUI 从零开发「幸运跑马灯抽奖」网页应用 本文基于真实操作记录:在 Windows 上安装并授权码道 CLI,通过 TUI/codearts run 输入自然语言需求,自动生成跑马灯抽奖网页,并完成浏览器预览与功能测试。 参考文档&…

作者头像 李华