Nginx を使っているときに 502 というエラーが出た場合、このページで解決できます。難しい知識は不要です。上から順に確認していきましょう。
まずこれだけ試してください
難しいことを調べる前に、次の3つを確認してください。多くの場合、これだけで解決します。
- 一度ログアウトして、再度ログインする
- ブラウザのキャッシュ・Cookieをクリアして再試行する
- しばらく待ってから(5〜10分後)再試行する
このエラーの意味
502 は、Nginx が「NginxがリバースプロキシとしてバックエンドサービスからGood Responseを受け取れなかった。」という状態のときに表示されます。
エラーが出ても、データが消えたり壊れたりするわけではないので安心してください。
よくある原因
このエラーが出るときによく見られるパターンです。自分の状況に近いものを探してみてください。
- バックエンドサービス(アプリサーバー・Gunicorn等)が停止またはクラッシュしている
- proxyパスのアドレスまたはポートが間違っている
- バックエンドサービスの起動が遅くNginxのタイムアウトが先に来た
解決手順(上から順に試す)
- curl localhost:<バックエンドポート> でバックエンドへ直接アクセスできるか確認する
- systemctl status <バックエンドサービス> でプロセスの状態を確認する
- nginx.confのproxy_pass先のアドレスとポートを確認する
それでも解決しない場合
- Nginx のサポートに問い合わせる:エラーメッセージの全文をスクリーンショットで送ると対応が早くなります
- 公式ヘルプページを検索する:「502 Nginx」で検索すると関連ページが見つかることがあります
- 時間をおいて再試行する:Nginx 側で一時的な問題が起きているケースもあります
免責事項:本記事の内容は、執筆時点の公開情報をもとに作成したものです。ソフトウェアの仕様は予告なく変更されることがあります。最新の情報は各ツールの公式サポートページをご確認ください。本記事の情報を利用した結果生じたいかなる損害についても、著者および運営者は責任を負いかねます。