WordPressサイトで504ゲートウェイタイムアウトエラーを修正する方法
公開: 2020-10-26504ゲートウェイタイムアウトエラーは、Webサイトの所有者とサイトの訪問者が直面する最も一般的なHTTP5xxエラーの1つです。 多くのWordPressブログやeコマースプラットフォームでは、このようなサーバーエラーを修正する方法を知ることは、苦労して稼いだ訪問者が競合他社のサイトにバウンスするのを防ぐために重要です。
504ゲートウェイタイムアウトエラーは、それが発生した理由を示していないため、サーバータイムアウトの原因を特定するのは困難です。 この記事は、それを詳細に理解し、その原因を診断して修正する方法を学ぶのに役立ちます。
投稿に記載されているさまざまなソリューションをすべて試した後、サイトはすぐに稼働するはずです。
興味深いですね? 飛び込みましょう!
ビデオ版を見たいですか?
504ゲートウェイタイムアウトエラーとは何ですか?
ブラウザでWebサイトにアクセスするたびに、ブラウザはサイトがホストされているWebサーバーにリクエストを送信します。 サーバーは要求を処理し、要求されたリソースで応答します。

サーバーの応答には、応答のステータスをブラウザに示すための多くのHTTPステータスコードの1つが含まれています。 ただし、これらすべてのHTTPステータスコードがエラーであるとは限りません。 たとえば、200 OKステータスコードは、サーバーがリクエストを正常に処理し、「すべてOK」であることを意味します。
HTTPステータスコードの5xxクラスは、サーバーに問題があり、サーバーがそれを認識しており、クライアント要求を実行できないことを示します。 その結果、これらはサーバーエラー5xxステータスコードとも呼ばれます。
公式には、5つのステータスコードが5xxクラス(500、501、502、503、504)で指定されています。 多くの非公式コード(506、507、509、520など)にも出くわす可能性があります。
インターネット技術特別調査委員会(IETF)は、504ゲートウェイタイムアウトエラーを次のように定義しています。
504(ゲートウェイタイムアウト)ステータスコードは、サーバーがゲートウェイまたはプロキシとして機能しているときに、要求を完了するためにアクセスする必要のあるアップストリームサーバーからタイムリーな応答を受信しなかったことを示します。
さらに簡単にするために、このエラーは2台のサーバーがリクエストの処理に関与している場合に発生します。 最初のサーバー(通常はメインサーバー)がタイムアウトし、2番目のサーバー(アップストリームサーバー)からの応答を待ちます。
504ゲートウェイタイムアウトエラーは、さまざまな形で現れます。 通常表示されるいくつかの方法は次のとおりです。

504ゲートウェイタイムアウトエラーは、502 Bad Gatewayエラーに似ています。これは、最初のサーバーが2番目のサーバー(アップストリームサーバー)から無効な応答を受信したことを示します。

504ゲートウェイタイムアウトエラーのバリエーション
ブラウザには、他のエラーと同様に、504ゲートウェイタイムアウトエラーが表示されます。 さまざまなオペレーティングシステム、Webサーバー、ブラウザ、およびユーザーエージェントが存在するため、さまざまな方法で表示される可能性があります。
以下は、発生する可能性のある一般的な504エラーメッセージのバリエーションです。
- 504ゲートウェイのタイムアウト
- 504ゲートウェイタイムアウトNGINX
- NGINX504ゲートウェイタイムアウト
- ゲートウェイタイムアウトエラー
- エラー504
- HTTPエラー504
- HTTPエラー504—ゲートウェイタイムアウト
- HTTP 504
- 504エラー
- ゲートウェイタイムアウト(504)
- このページが機能していません—ドメインの応答に時間がかかりすぎました
- 504ゲートウェイタイムアウト—サーバーが時間内に応答しませんでした
- 完了するのに時間がかかりすぎたため、ページリクエストはキャンセルされました
- サイト訪問者:リクエストの処理に問題がありました。数分後にもう一度お試しください。
- サイト所有者:ゲートウェイのタイムアウトが発生しました。 詳細については、エラーログにアクセスしてください。
- 空白の白い画面
上記のすべてのエラー応答は、言い方が異なりますが、同じ504ゲートウェイタイムアウトサーバーエラーを示しています。
WebサーバーとWebサイトは、ユーザーに504ゲートウェイタイムアウトエラーを表示する方法をカスタマイズできます。 それらのいくつかはクールになることができます! それは彼らの訪問者の失望を鎮めるための優れた戦術です。

504ゲートウェイタイムアウトエラーのSEOへの影響
すべての5xxエラーは、Webページの読み込みを妨げ、ユーザーエクスペリエンスに悪影響を及ぼします。 したがって、グーグルのような検索エンジンはこれらのエラーを真剣に受け止めています。 エラーが長期間続く場合は、検索エンジンの結果からWebページのインデックスを解除する可能性さえあります。
たとえば、Googleスパイダーが503 Service Unavailableエラーに遭遇した場合、サイトメンテナンスモードを有効にするために主に使用されるため、これは一時的な問題であることがわかります。 したがって、後でもう一度ページをクロールしようとします。
504ゲートウェイタイムアウトエラーは、複数の理由が原因である可能性があるため、必ずしも一時的なものではありません。 サイトがほんの数分間ダウンしていて、スパイダーが毎分複数回クロールしようとしている場合、キャッシュからページを提供しようとします。 彼らはそれに気付かないでしょう。
ただし、サイトが6時間以上ダウンしている場合、Googleは504エラーをサイト全体の重大な問題と見なし、できるだけ早く修正する必要があります。 これはSEOに悪影響を与える可能性があります。

Google Search Consoleは、ウェブサイトのHTTP5xxエラーを監視するための最高のSEOツールの1つです。
504ゲートウェイタイムアウトエラーの原因
504エラーはサーバー間のタイムアウトが原因であるため、問題はおそらくクライアントのデバイスまたはインターネット接続にあるのではありません。 これには、デバイスと接続も含まれます。
504ゲートウェイタイムアウトエラーは、Webサーバーが別のサーバーからの応答を待機しすぎて「タイムアウト」したことを示します。 このタイムアウトには多くの理由が考えられます。他のサーバーが正しく機能していない、過負荷になっている、またはダウンしている。
他のサーバーは必ずしも外部である必要はありません(CDN、APIゲートウェイなど)。 また、メインWebサーバー(リバースプロキシサーバー、データベースサーバーなど)内のサーバーのようなエンティティにすることもできます。
504ゲートウェイタイムアウトエラーを修正する方法
サーバー構成、ホスティングプラン、サードパーティのプラグイン、引き付けるトラフィックなど、WordPressサイトに関する正確な詳細を知らないと、504ゲートウェイタイムアウトエラーを修正するのにイライラし、圧倒される可能性があります。
多くの変数が関係しているため、非常にまれなクライアント側の問題を修正することから始めて、サーバー側の問題を修正することをお勧めします。 彼らは通常、504エラーの原因です。
Webページをリロードしてみてください
504ゲートウェイタイムアウトエラーが発生したときに最初に試すことができることの1つは、数分待ってからページをリロードしてみることです。
F5キーボードショートカットを押すと、ほとんどのブラウザでWebページを更新/再ロードできます。 再読み込みする前にページのブラウザキャッシュを削除するには、代わりにCTRL+F5ショートカットコンボを押すことができます。

その間、別のブラウザにサイトを読み込んで、問題として除外することもできます。 ほとんどの504エラーは一時的に過負荷のサーバーが原因であるため、このソリューションを使用すると、サイトがすぐに戻ってくるはずです。
サイトを待ってリロードしても504エラーの問題が解決しない場合は、サイトがすべての人のためにダウンしているか、自分だけのためにダウンしているかを確認できます。 サイトのダウンタイムをテストするための2つの便利なオンラインツールは、Down forEveryoneまたはJustMeで、今すぐダウンしていますか?

ネットワークデバイスを再起動します
モデムやルーターなどのネットワークデバイスに問題があると、504ゲートウェイタイムアウトエラーが発生する場合があります。 これらのデバイスを再起動すると、問題の修正に役立つ場合があります。
これらのネットワークデバイスはすべて任意の順序でオフにできますが、スイッチをオンに戻す順序は重要です。 通常、これらのデバイスは、インターネットサービスプロバイダーからメインクライアントデバイスへの接続順序に従って、「アウトサイドイン」からオンにします。
プロキシ設定を確認してください
プロキシサーバーは、デバイスとインターネットの間にあります。 これは主に、WebサイトやWebサーバー(VPNの使用など)から個人情報(デバイスの場所など)を隠すことによってオンラインプライバシーを強化するために使用されます。
プロキシサーバーで504エラーが発生することはまれですが、プロキシサーバーの設定が正しくないことが原因である場合があります。 プロキシサーバーを無効にして、Webページをリロードして、エラーが修正されるかどうかを確認できます。

ほとんどのクライアントはプロキシサービスを使用しないため、プロキシサーバーを使用しないことが確実な場合は、この手順をスキップできます。 ただし、知らないうちに設定した可能性があります。 この原因を除外するには、デバイスとブラウザのプロキシ設定を確認することをお勧めします。
DNSの問題
504ゲートウェイタイムアウトエラーは、サーバー側またはクライアント側(あるいはその両方)のDNSの問題によっても発生する可能性があります。
サーバー側のDNSの問題の最も可能性の高い理由は、FQDN(完全修飾ドメイン名)が正しいIPアドレスを解決しないか、 DNSサーバーが応答しないことです。 通常、これは、WordPressサイトを新しいサーバーまたはホストに移行した直後に発生します。 したがって、ドメインのDNSレコードが完全に伝播するのを待つことが重要です。これには最大24時間かかる場合があります。
whatsmydns.net DNSチェッカーやDNSMapなどの無料ツールを使用して、DNSが世界中に広まっているかどうかを確認できます。

クライアント側のDNSの問題を修正するには、ローカルDNSキャッシュをフラッシュしてみてください。 これはブラウザのキャッシュをクリアするのと似ていますが、ここではオペレーティングシステムからDNSキャッシュをフラッシュしている点が異なります。
Windowsを使用している場合は、コマンドプロンプトを開き、次のディレクティブを入力することでDNSキャッシュをフラッシュできます。
ipconfig /flushdns

「DNSリゾルバーキャッシュが正常にフラッシュされました」と表示されます。 それが機能した場合のメッセージ。
最新のmacOSバージョンの場合、ターミナルを開いて次のコマンドを実行できます。
sudo killall -HUP mDNSResponder
プロセスが終了してもmacOSに通知は表示されませんが、コマンドにカスタムメッセージを追加することで通知を変更できます。
sudo killall -HUP mDNSResponder; DNS Cache was cleared successfully
古いバージョンのmacOSを使用している場合、入力する必要のあるコマンドは、実行しているmacOSのバージョンによって異なります。 詳細については、Kinstaの詳細なフラッシュDNSチュートリアルのmacOSセクションを参照してください。
Linuxオペレーティングシステムを使用している場合、Linuxでさえコマンドラインインターフェイスとしてターミナルを使用するため、プロセスはmacOSと非常によく似ています。 多くのLinuxディストリビューションがあるため、実行する必要のある正確なコマンドは、ディストリビューションごとに異なる場合があります。 詳細については、Kinstaのガイドをご覧ください。
最後に、クライアント側のDNSサーバーを一時的に変更できます。 デフォルトでは、ISPはDNSサーバーを自動的に割り当てます。 ただし、これらを一時的にパブリックDNSIPに変更できます。
試すことができる信頼できるDNSサーバーには、Google Public DNS、Cloudflare 1.1.1.1、Quad9 DNS、CiscoOpenDNSがあります。

サイトのCDNを一時的に無効にする
場合によっては、コンテンツ配信ネットワーク(CDN)にも問題がある可能性があります。 サイトのオリジンサーバーに到達できない場合、ほとんどのCDNはキャッシュから完全なWebページを提供しようとします。
ただし、ほとんどのCDNは、ほとんどのサイト(WordPress管理ダッシュボードなど)で動的アセットをキャッシュするのが複雑なため、デフォルトではこの機能を有効にしません。

これをトラブルシューティングする簡単な方法は、CDNを一時的に無効にすることです。 たとえば、無料のCDN EnablerWordPressプラグインを使用してサイトアセットをCDNURLにリンクしている場合は、プラグインを非アクティブ化して、サイトのリロードをテストできます。
CDNへの接続に使用できる他のプラグイン(WP Rocket、Breeze、W3 Total Cacheなど)を使用する場合も同様です。
サイトの管理ダッシュボードにアクセスできない場合は、プラグインのフォルダー名を変更して、SFTP経由でプラグインを無効にすることができます。

完全なプロキシサービスを提供するCloudflareやSucuriなどのCDNには、エッジサーバーとオリジンサーバーの間に追加のファイアウォールがあります。 したがって、HTTP5xxエラーを使用しているときに発生する可能性が高くなります。 それらのほとんどは、オリジンサーバーから返された5xxエラーをキャッシュするため、トラブルシューティングが簡単です。
Cloudflareの無料プランは5xxエラーをスローする傾向があります。 残念ながら、これは完全なプロキシサービスであるため、無効にする簡単な方法はありません。 しかし、Cloudflareのせいにする前に、Cloudflareが504ゲートウェイタイムアウトエラーの2つのバリエーションを示していることを知っておいてください。
Cloudflareでの504ゲートウェイタイムアウト(バリエーション1)
Cloudflareは、サイトのオリジンサーバーが標準のHTTP 504応答で応答すると、カスタム504ゲートウェイタイムアウトエラー画面を表示します。

ここでの問題は、CloudflareではなくWebサーバーにあります。 下記の他のソリューションで修正してみるか、ホスティングプロバイダーのサポートに技術的なサポートを依頼してください。
Cloudflareでの504ゲートウェイタイムアウト(バリエーション2)
Cloudflareが504ゲートウェイタイムアウトエラーを引き起こす場合、エラー画面には「cloudflare」と表示されます。これは現在、すべてのCloudflareアセットの標準サーバー名です。 通常、エラー画面は次のように表示されます。

Cloudflare自体が応答しないため、ここにはCloudflareブランドのエラー画面は表示されません。
ほとんどの場合、Cloudflareはすでに問題を認識しており、すでに修正に取り組んでいます。 これは、CloudflareシステムステータスのWebページを確認することで確認できます。 または、Cloudflareのサポートに連絡して、より迅速に解決することもできます。

大規模なアップロードによるCloudflareでの504ゲートウェイタイムアウト
サイトへのアップロードのサイズも、サーバーのタイムアウトの原因となる可能性があります。 Cloudflareは、無料プランとプロプランの両方で、アップロードファイルのサイズ(HTTP POSTリクエストごと)をわずか100MBに制限しています。

問題は、ホスト側またはCloudflareにある可能性があります。 DNSホストファイルでCloudflareをバイパスし、アップロードを再試行することで、正確な原因を見つけることができます。
WordPressでCloudflareを使用している場合は、無料のプラグインを使用し、重要なURL(WordPress管理ダッシュボードなど)をキャッシュから除外することをお勧めします。 WordPressのCloudflare設定を構成する方法については、Kinstaの詳細な投稿を参照してください。
推奨読書:WordPress用にCloudflareAPOを設定する方法。
サーバーの問題(ホストに確認してください)
サーバーの問題は、504ゲートウェイタイムアウトエラーが発生する最も一般的な理由の1つです。 ほとんどのWordPressサイトはNginxまたはApacheWebサーバーでホストされているため、NginxまたはApacheは何かからの応答を待ってタイムアウトします。
多くのクライアントは、他のWordPressホストで直面しているまさにこの問題のためにKinstaにやって来ます。 会話は次のようになります。
月に約10万人の訪問者があり、20万回以上の視聴があります。 現在、____でホスティングしており、サーバーの過負荷が原因で504エラーが常に発生しています。 ____が問題をどのように処理したかが気に入らないので、すぐに専用の計画に移行する必要があるとアドバイスされましたが、これは必要ないと思います。
トラフィックの多いサイトやeコマースサイトでは、キャッシュできないリクエストが多数生成されるため、サーバーの過負荷が原因で504エラーが発生する傾向があります。 ただし、この問題は、単純なブログを含むすべてのサイトで発生する可能性があります。 多くのホストは、問題を修正するために上位プランにアップグレードするように求めますが、ほとんどの場合、これは不要です。

Kinstaは、サイトごとにLXD管理対象ホストとオーケストレーションされたLXCソフトウェアコンテナーを使用します。 したがって、すべてのWordPressサイトは、それを実行するために必要なすべてのソフトウェア(Linux、Nginx、PHP、MySQL)にアクセスできる、独自の分離されたコンテナーに格納されます。 リソースは100%プライベートであり、他のサイト、さらには自分のサイトと共有されることはありません。
共有ホスティングプランを提供するほとんどのWordPressホストには、この機能がありません。 したがって、同じサーバーでホストされているトラフィックの多いサイトでは、サイトでも504エラーが発生する可能性があります。
Kinstaは、コンテナ内の各サイトを分離するだけでなく、何千もの同時接続を簡単に処理できるようにインフラストラクチャを設計しました。 Kinstaは、リモートサーバーではなくローカルホストでMySQLデータベースをホストします。 これは、マシン間の遅延がないことを意味し、クエリが高速になり、タイムアウトが発生する可能性が低くなります。
Kinstaに移行する多くのクライアントは、全体的なロード時間が大幅に短縮されることを認識しています。

サーバーのタイムアウトの原因は、サーバーの過負荷だけではありません。 504エラーには他にも多くの理由が考えられます。
遅いサーバーインフラストラクチャ
WordPressサイトをホストするために使用するサーバーには、負荷を処理するのに十分なリソースがない可能性があります。 これは、10年前のPCでグラフィックを多用する最新のビデオゲームをプレイするようなものです。
サーバーは、Webサイトを提供しようとして電話を切ります。 この問題の唯一の解決策は、より優れたインフラストラクチャを備えたサーバーにアップグレードすることです。 このため、Kinstaの最も基本的なWordPressホスティングプランでさえ、トラフィックが中程度の静的サイトを処理します。
より多くのPHPワーカーが必要
PHPワーカーは、WordPressサイトのコードを実行するために使用されます。 月に50,000人の訪問者を獲得するeコマースサイトは、同じトラフィック量の単純なブログよりもはるかに多くのリソースを必要とします。 サーバーのすべてのPHPワーカーがビジー状態の場合、キューを作成します。
キューが大きくなりすぎると、サーバーは古い要求を無視します。これにより、サーバーは504ゲートウェイエラーをスローする可能性があります。 PHPワーカーの数を増やすことについてホストに尋ねることができます。 これにより、サイトで複数のリクエストを同時に実行できるようになります。
ファイアウォールの問題
サーバーのファイアウォールにエラーや不適切な構成が含まれている可能性があります。 おそらく、そのルールのいくつかは、サーバーが適切に接続を確立するのを妨げています。 ファイアウォールが原因であるかどうかを知るために、サーバーのエラーログを確認できます。
ネットワーク接続の問題
プロキシサーバーとWebサーバー間の接続の問題により、HTTP要求への応答が遅れる可能性があります。 ロードバランサーを使用している場合は、ネットワーク接続の問題も発生する可能性があります。
HTTPタイムアウト
HTTPタイムアウトは、Webサーバーとクライアント間の接続が長時間開いたままになっている場合に発生する可能性があります。 WordPressサイトでは、これは通常、WordPressインポートを実行しているときに発生します。 この問題を解決する1つの方法は、より高速なインターネット接続に切り替えることです。
WP-CLIをサポートするツールを使用して、HTTP接続を完全にバイパスし、サーバー上でスクリプトを直接実行することもできます。 たとえば、wp import WP-CLIコマンドを使用して、コマンドラインインターフェイスから直接WordPressImporterプラグインを実行できます。
重要: 504 Gateway Timeoutエラーは、503ServiceUnavailableエラーまたは502BadGatewayエラーに似ています。 しかし、それらはすべて異なります。 Kinstaで504エラーが発生した場合は、サポートチケットを開いて、問題をすぐに修正してください。
サイトのダウンタイムを自分で監視するには、updown.ioなどのツールを使用できます。 HTTPリクエストを送信することにより、Webサイトのステータス(または任意のURL)を定期的にチェックします。 チェック頻度は15秒から1時間まで設定できます。 Webサイトが正しく応答しない場合は、電子メールまたはSMSで通知されます。

updown.ioのすべてのアカウントで大量の無料クレジットを取得できますが、より安価な代替品を探している場合は、WebGazerまたはUptimeRobotをチェックしてください。 これらのツールはどちらも、5分ごとにサイトの稼働時間を無料で監視するのに役立ちます。 それはほとんどのウェブサイトの所有者にとって十分にまともです。

あなたのウェブサイトを監視することはあなたにそれがどれくらいの頻度でダウンしているかについての考えをあなたに与えるでしょう。 これは、共有ホスティングプロバイダーを使用している場合に特に役立ちます。 ほとんどのマネージドWordPressホストは、これを自動的に処理します。 したがって、常に一緒に行くことをお勧めします。
詳細な説明については、マネージドWordPressホスティングの重要性に関するKinstaの投稿をご覧ください。
スパム、ボット、またはDDoS攻撃
悪意のある攻撃者は、送信するリクエストが多すぎたり、リソースを大量に消費したりすることで、Webサーバーをクロールさせる可能性があります。 サイトがボットによってスパムされたり、DDoS攻撃を受けたりすると、サーバーを圧倒し、多くの本物のユーザーに504ゲートウェイタイムアウトエラーが発生する可能性があります。
サーバートラフィックと分析を調べて、サイトトラフィックに不規則なパターンを見つけることができるかどうかを確認できます。 Kinstaを使用してサイトをホストしている場合は、MyKinstaAnalyticsダッシュボードにアクセスしてこのデータを簡単に表示できます。

上位のクライアントIPを調べて、調査を開始します。 誰が最大数のリクエストをどこから生成したかがわかります。 サーバーが突然膨大な帯域幅を使い果たしたり、大量のトラフィックを集めたりした場合、このレポートは非常に便利です。

次に、キャッシュ分析レポートを確認できます。 ここでは、キャッシュをバイパスまたは欠落している、またはキャッシュから処理されているリクエストの数を確認できます。 パフォーマンスと安定性の理由から、できるだけ多くのリクエストをキャッシュする必要がありますが、それを実現できるとは限りません。
たとえば、WooCommerceサイトは、ショッピングカートやチェックアウトプロセスなどの機能に対して、キャッシュできない多くのリクエストを生成します。

最後に、WordPressセキュリティプラグインを使用して、気になるトラフィック/ IPを見つけてブロックすることにより、Webサイトのセキュリティを強化できます。 特定のIPをブロックするようにホストに依頼することもできます。
ダウンタイムとWordPressの問題に苦しんでいますか? Kinstaは、パフォーマンスとセキュリティを念頭に置いて設計されたホスティングソリューションです。 私たちの計画をチェックしてください
攻撃の長さと規模によっては、多くの攻撃者がブロックされた後にIPとプロキシアドレスを変更するため、これはIPをブラックリストに登録するという終わりのないプロセスになる可能性があります。
注: Kinstaは、サイトのパフォーマンス、特にスキャン機能に大きな影響を与える可能性があるため、クライアントがWordPressセキュリティプラグインをインストールすることを許可していません。 KinstaはGoogleCloudPlatformでロードバランサーを使用しているため、IPのブロックは必ずしも意図したとおりに機能するとは限りません。
CloudflareやSucuriなどの専用のセキュリティソリューションを使用して、DDoS攻撃やスパムボットからサイトを保護できます。 詳細については、WordPressサイトにCloudflareをインストールする方法と、SucuriがDDoS攻撃を阻止するのにどのように役立ったかに関するKinstaの記事を確認してください。
破損したWordPressデータベース
特にWordPressサイトでは、データベースが破損していることが原因で504ゲートウェイタイムアウトエラーが発生する場合があります。 通常、これはデータベーステーブルまたはファイルの破損が原因です。 場合によっては、サイトやデータベースがハッキングされるなどの深刻なセキュリティ問題が原因である可能性もあります。
破損したWordPressデータベースの修復は、問題によって異なります。 WP-DBManagerのようなプラグインを使用すると、データベースの問題を簡単に診断して修復できます。 開始するには、WordPressデータベースの問題の修復に関するKinstaの詳細なウォークスルーを読むことをお勧めします。
サイトのプラグインとテーマを確認してください
ほとんどの場合、サードパーティのプラグインとテーマは504エラーを引き起こしません。 ただし、通常、プラグイン/テーマによって生成されたキャッシュされていない多くのリクエストをキューに入れることにより、サーバーのタイムアウトが発生する可能性がわずかにあります。 これにより、サーバーの多くのPHPワーカーが拘束されるため、504エラーが発生する可能性があります。
この問題の良い例は、WordPressサイトにeコマース機能を追加するためにインストールされたプラグインであるWooCommerceです。
この問題をトラブルシューティングする最も簡単な方法は、すべてのプラグインを非アクティブ化することです。 プラグインを非アクティブ化するだけでデータが失われることはありません。
管理ダッシュボードにアクセスできる場合は、[プラグイン]画面に移動し、[一括操作]メニューから[非アクティブ化]を選択し、すべてのプラグインにチェックマークを付けて、[適用]ボタンをクリックします。 これにより、すべてのプラグインが無効になります。

管理領域にアクセスできない場合は、前述の方法を使用してSFTP経由でプラグインを無効にすることができます。 メインプラグインフォルダ名の名前を変更するだけで、すべてのプラグインを一括で無効にできます。
すべてのプラグインを無効にしたら、サイトが正しく読み込まれるかどうかを確認します。 それが機能する場合は、各プラグインをアクティブにして、すべてのプラグインを有効にした後にサイトをテストする必要があります。
最後に、プラグイン、テーマ、WordPressコアが最新であることを確認してください。 また、サーバーが推奨バージョンのPHPを実行していることを確認してください。
これがあまりにも圧倒的であると感じた場合は、いつでもホストに連絡して助けを求めることができます。 Kinstaは、Kinsta APMおよびその他のトラブルシューティング手法を使用して、クライアントがエラーの原因となる可能性のあるプラグイン、クエリ、またはスクリプトを絞り込むのに役立ちます。
プラグイン/テーマの非効率的なクエリや不正なコードなどの最悪のシナリオでは、WordPress開発者を招いて問題を修正できます。
エラーログを確認する
エラーログを表示すると、WordPressサイトで504エラーのトラブルシューティングとデバッグを行うときに非常に役立ちます。 これは、特にサイトの要求の厳しいプラグインが原因である場合に、サイトの問題をすばやく絞り込むのに役立ちます。
Kinstaをご利用の場合は、MyKinstaダッシュボードのログビューアでエラーを簡単に確認できます。

ホストにログツールがない場合は、 wp-config.phpファイルに次のコードを追加してWordPressデバッグモードを有効にできます。
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
WP_DEBUG定数は、WordPressデバッグモードを有効または無効にします。 機能を拡張できる2つのオプションのコンパニオン定数があります。 WP_DEBUG_LOG
定数は、すべてのエラーを/wp-content/
ディレクトリ内のdebug.logファイルに保存するように指示します。 このファイルが表示されない場合は、いつでも作成できます。
WP_DEBUG_DISPLAY
定数は、デバッグログをHTMLページに表示するかどうかを制御します。 これをfalseに設定すると、すべてのエラーが非表示になりますが、 WP_DEBUG_LOG
もtrueとして定義しているため、後でエラーを確認できます。
重要: Kinsta環境でWP_DEBUGを有効にしている場合、MyKinstaダッシュボードのerror.logではなく、すべてのエラーがdebug.logファイルにルーティングされます。
SFTP経由で生のWordPressエラーログファイルをダウンロードすることもできます。 通常、エラーログは、サーバーのルートディレクトリの「logs」という名前のフォルダにあります。

Kinstaユーザーは、MyKinstaダッシュボードからWordPressデバッグモードを有効にすることもできます。 これを行うには、 [サイト]>[ツール]>[WordPressデバッグ]に移動し、[有効にする]ボタンをクリックします。 これにより、SSHまたはSFTP経由でデバッグモードを有効にしなくても、PHPのエラーと通知を確認できます。
最後に、サーバーログファイルを確認できます。 WordPressサイトをホストするために使用しているサーバーに応じて、それらは一般的に次の場所にあります。
- Apache:
/var/log/apache2/error.log/
- Nginx:
/var/log/nginx/error.log/
詳細については、ApacheまたはNginxのロギング関連のドキュメントを参照してください。
ApacheまたはNginxの設定を適切に構成する
サーバー構成ファイルを編集して、特定のディレクティブのリソース制限を増やすことができます。 これは、504ゲートウェイタイムアウトエラーの解決に役立ちます。
ApacheWebサーバーの場合
まず、次のコードをhttpd.confに追加します。
TimeOut 600
この設定は、サーバーが特定の要求をネットワークタイムアウトの問題としてマークする前に待機する時間を定義します。 デフォルト値は60秒です(Apache 2.4バージョン)。
このディレクティブはhttpd.confファイルにのみ追加でき、.htaccessファイルには追加できません。 ほとんどの共有ホスティングプロバイダーではhttpd.confファイルを変更できないため、代わりに.htaccessファイルのLimitRequestBodyディレクティブの値を増やしてみてください。
次に、 php.iniファイルに次の行を追加します。
max_execution_time 300
PHPのmax_execution_timeディレクティブのデフォルト値は30秒です。 増やすと、サイトのPHPスクリプトの実行時間が長くなります。
NginxWebサーバーの場合
WordPressサイトをNginx+FastCGI Process Manager(PHP-FPM)で実行している場合、またはNginxをApacheのリバースプロキシとして使用している場合は、サーバー設定を微調整して504ゲートウェイタイムアウトエラーを防ぐことができます。
Nginx + FastCGI(PHP-FPM)での504ゲートウェイタイムアウトエラー
まず、PHP-FPMプール構成ファイルを編集する必要があります。 Nginxサーバーの/etc/php7.4/fpm/pool.d/www.conf
の場所にあります(正確なパスはPHPのバージョンによって異なる場合があります)。 または、ターミナルで次のコマンドを実行して、PHP-FPMプール構成ファイルを編集することもできます。
sudo nano /etc/php/7.2/fpm/pool.d/www.conf
次に、次のディレクティブを設定します。
request_terminate_timeout = 300
この後、 php.iniファイルを編集する必要があります。 /etc/php.ini
にあります。 ファイルを開き、 max_execution_time
ディレクティブの値を300秒に追加/変更します。
max_execution_time = 300
最後に、次のコードをnginx.confファイルのロケーションブロックに追加します。
location ~ .php$ { ... fastcgi_read_timeout 300; }
変更を有効にするには、NginxとPHP-FPMをリロードします。
sudo service nginx reload sudo service php7.4-fpm reload
PHP-FPMをリロードする正確なコードは、サーバーにインストールされているPHPのバージョンによって異なります。 サイトをテストして、問題が修正されたかどうかを確認します。
504Nginxプロキシでのゲートウェイタイムアウトエラー
ApacheのリバースプロキシサーバーとしてNginxを使用している場合は、 nginx.confファイルに次のディレクティブを追加することで、サーバーのタイムアウトに対してより寛容にすることができます。
proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600;
変更を加えた後、Nginxをリロードすることを忘れないでください。
sudo service nginx reload
504ゲートウェイタイムアウトなどの他のHTTPエラー
記事の前半で述べたように、他の多くのHTTP5xxエラーは504ゲートウェイタイムアウトエラーと同じです。 それは、それらがすべてサーバー側で発生するためです。 これらのエラーは次のとおりです。
- 500内部サーバーエラー
- 501未実装エラー
- 502不正なゲートウェイエラー
- 503ServiceUnavailableエラー
404 Not Foundエラーなど、クライアント側の問題が原因で発生するその他のHTTPエラーも、504エラーと同様です。 詳細については、Kinstaの詳細ガイドとHTTPステータスコードのリストを参照してください。
概要
WordPressサイトは、複数の理由により504ゲートウェイタイムアウトエラーの影響を受ける可能性があります。 この記事では、それらすべてのトラブルシューティング方法を学びました。 通常、これらのエラーはサーバー側の問題が原因で発生します。その場合、ホストに連絡して迅速に解決することができます。
ただし、このエラーは、サードパーティのプラグイン、テーマ、サービス、非効率的なデータベースクエリ、またはこれらの2つ以上の組み合わせが原因である可能性があることも理解する必要があります。 サーバーのリソース(PHPワーカーなど)を最大限に活用している場合は、パフォーマンスが向上するようにサイトを最適化することをお勧めします。
それでもWebサイトがタイムアウトしていることがわかった場合は、ホスティングプランまたはPHPワーカーの数をアップグレードする必要がある可能性があります。 この記事で説明されている他のすべての解決策を使い果たした後でのみ、このオプションを検討することをお勧めします。
単純な静的サイトから複雑なeコマースおよびメンバーシップサイトまで、Kinstaのスケーラブルなホスティングプランは、すべてのタイプのWebサイトに対応するように設計されています。 To learn more about our scalable cloud hosting, check out this article!
Did we miss anything? If you're still finding it difficult to fix the 504 Gateway Timeout error on your WordPress site, leave a comment below.