修复 Nginx 502 Bad Gateway 错误:分步指南

本综合指南详细介绍了 Nginx 502 错误的常见原因(包括代理配置问题),并提供了清晰、可操作的步骤,帮助您快速诊断并解决这些问题。

什么是 Nginx 502 Bad Gateway 错误?

当 Nginx 作为反向代理服务器运行时,502 错误表示上游服务器(如 PHP-FPM、Node.js 或 Python 应用)没有返回有效的响应。简单来说,Nginx 试图与后端服务通信,但没有得到预期的结果。

常见原因

  1. 后端服务未运行:后端应用程序崩溃或未启动。
  2. 配置错误:Nginx 配置文件中的 proxy_pass 指向了错误的端口或 IP。
  3. 防火墙限制:防火墙阻止了 Nginx 与后端服务之间的通信。
  4. 资源耗尽:服务器内存不足或进程达到上限。

故障排查步骤

1. 检查后端服务状态

首先,确认您的后端服务是否正在运行。例如,如果是 PHP-FPM:

sudo systemctl status php-fpm

2. 查看 Nginx 错误日志

这是诊断问题的最重要步骤。通常位于 /var/log/nginx/error.log

sudo tail -f /var/log/nginx/error.log

3. 验证配置文件

在重启 Nginx 之前,请务必检查配置语法是否正确:

sudo nginx -t

4. 重启服务

如果确认配置无误且后端服务正常,尝试重启 Nginx:

sudo systemctl restart nginx

通过以上步骤,您应该能够定位并解决大多数 502 错误。