504 Gateway Timeout
バックエンドサーバーからの応答がタイムアウトした場合に発生するエラー
概要
504 Gateway Timeout は、Nginxがリバースプロキシとして動作している際に、バックエンドサーバー(PHP-FPM、uWSGI、Node.js等)からの応答が制限時間内に得られなかった場合に発生するエラーです。
エラーメッセージ
504 Gateway Time-out
nginx
upstream timed out (110: Connection timed out) while reading response header from upstream
原因
- バックエンドの処理が遅い: 重い処理やクエリに時間がかかる
- タイムアウト設定が短い: Nginx のプロキシタイムアウトが不十分
- バックエンドが応答しない: PHP-FPM やアプリケーションがハング
- リソース不足: CPU、メモリ、接続数の枯渇
- ネットワークの問題: バックエンドへの接続が遅い
解決策
1. Nginx のタイムアウト設定を増やす
| |
| |
2. PHP-FPM のタイムアウト設定
| |
| |
3. バックエンドの接続設定
| |
4. Node.js / Express の設定
| |
| |
5. uWSGI の設定
| |
| |
6. Gunicorn の設定
| |
| |
7. バックエンドの処理を最適化
| |
| |
8. ヘルスチェックの設定
| |
9. キャッシュの活用
| |
デバッグのコツ
Nginx のエラーログ
| |
バックエンドの状態確認
| |
スローログの確認
| |
Nginx の他のエラー
この記事は役に立ちましたか?