网站频繁出现502 Bad Gateway错误?Nginx反向代理配置应急指南
针对网站频繁出现的502 Bad Gateway错误,结合Nginx反向代理配置特性,以下应急指南整合了多篇技术文档的解决方案,按优先级排序执行:
curl http://localhost:8080
),确认服务是否正常响应。/var/log/php-fpm.log
)。nginx.conf
的http
或server
块中添加以下参数,解决响应头过大问题:
proxy_buffer_size128k; proxy_buffers32128k; proxy_busy_buffers_size256k; ``` ``` - 适用场景:第三方接口返回超长Header或JSON数据被截断[10]()[4]()。
systemctl restart nginx php-fpm
proxy_read_timeout300s; fastcgi_read_timeout300s; ``` ```
php-fpm.conf
:
pm.max_children = 100# 根据内存调整(每进程约30MB)pm.max_requests = 1000# 防止内存泄漏 ``` ``` [1]()[3]()[11]()
grep nginx /var/log/audit/audit.log
setenforce 0
,若问题消失需永久配置策略。tail -100f /var/log/nginx/error.log
upstream sent too big header
(缓冲区不足)、Connection refused
(后端服务崩溃)。upstream
模块配置多台后端服务器,实现故障转移:
upstream backend { server192.168.1.10:8080 max_fails=3 fail_timeout=30s; server192.168.1.11:8080 backup; } ``` ``` [6]()[7]()
#!/bin/bash if curl -I http://yourdomain.com | grep "502"; then systemctl restart nginx fi``` ``` 可通过Crontab每分钟执行[2]()[5]()。
proxy_cache_path /data/cache levels=1:2 keys_zone=mycache:100m inactive=60m; location / { proxy_cache mycache; proxy_pass http://backend; } ``` ```
proxy_buffers
过大会导致内存耗尽,需根据free -m
结果动态调整。proxy_buffering off
:关闭后可能引发性能问题,仅建议在实时流传输场景使用。max_execution_time
需与Nginx超时时间匹配,避免单点阻塞。通过以上分阶段处理,90%的502错误可快速恢复。若问题持续,需结合strace
跟踪系统调用或使用perf
分析服务器性能瓶颈。