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