Nginx 502 Bad Gatewayエラーの修正:ステップバイステップガイド
本ガイドでは、Nginxの502エラーの一般的な原因(プロキシ設定の問題など)を詳しく解説し、迅速に診断・解決するための明確で実践的な手順を紹介します。
Nginx 502 Bad Gatewayエラーとは?
Nginxの「502 Bad Gateway」エラーは、サーバーがゲートウェイまたはプロキシとして機能している際に、上流サーバー(バックエンド)から無効な応答を受け取ったことを示します。簡単に言えば、Nginxは正常に動作していますが、背後にあるアプリケーション(PHP-FPM、Node.js、Pythonなど)がリクエストを処理できていない状態です。
一般的な原因
- バックエンドサービスが停止している: アプリケーションサーバーが起動していない。
- 設定ミス: Nginxの
proxy_pass設定が間違っている。 - リソース不足: サーバーのメモリやCPUが枯渇している。
- タイムアウト: バックエンドの処理に時間がかかりすぎている。
解決のためのステップバイステップガイド
1. バックエンドサービスのステータスを確認する
まず、バックエンドサービスが実行されているか確認します。
# PHP-FPMの場合
sudo systemctl status php-fpm
# Node.js (PM2)の場合
pm2 status
サービスが停止している場合は、再起動してください。
2. Nginxのエラーログを確認する
原因を特定する最も確実な方法はログを確認することです。
# ログの末尾を確認
sudo tail -f /var/log/nginx/error.log
ログ内に「Connection refused」や「Upstream timed out」といったメッセージがないか確認してください。
3. 設定ファイルの構文チェック
設定を変更した後は、必ず構文チェックを行ってください。
sudo nginx -t
問題がなければ、Nginxをリロードします。
sudo systemctl reload nginx
まとめ
502エラーは多くの場合、バックエンドサービスのダウンや設定ミスが原因です。まずはログを確認し、サービスが正しく起動しているかを確認することから始めましょう。