web-dev-qa-db-ja.com

エラー504ゲートウェイタイムアウト

エラー504ゲートウェイタイムアウトが常にロードバランサーから発生するのか、それともApacheとそれが実行しているPHPコード)から発生する可能性があるのか​​を知りたいのですが。

ありがとう

1
mnml

これは通常、ロードバランサーがApacheからの応答を待機していて、Apacheがロードバランサーのタイムアウト期間内に応答を返さない場合に発生します。したがって、504ゲートウェイタイムアウトを返します。 Apacheが応答しない原因については、Apacheが提供しているものに関する背景情報をあまり提供していないため、あなただけが言えることです。詳細については、Apacheログを参照してください。通常、アクセスログとエラーログ。ロードバランサーのタイムアウト値を増やして、それが役立つかどうかを確認します。 Apacheインスタンスが停止しているために504を取得しないように、Apacheでクラスタリングを行うことは常に良いことです。 mod_proxyを使用すると、ソフトウェアのクラスタリングを実現できると思います。 Apacheサイトをチェックアウトするかどうかはわかりません。

3
bagavadhar

通常、Apache(mod_php)またはPHP(FastCGI)がダウンしているかビジーであるため、バランシングから。

2
ooshro

確かにそれはphpからのものである可能性があります。 phpスクリプトがループ状態にあり、「吐き出さない」場合、コンテンツ接続は最終的にタイムアウトになり、バランサーはゲートウェイのタイムアウトを報告します。

その「ループ」は必ずしもループである必要はありません。mysql/ memcacheなどからデータを読み取るために何らかのサービスへの接続を待機している可能性があります...

1
Hrvoje Špoljar