サーバーエラー
「502 Bad Gateway」エラー
502エラーは通常、単一のワーカープロセスがPHP設定で設定されたmax_execution_time
またはmax_input_time
よりも長く実行され、PHPのタイムアウトが発生した場合に表示されます。
このエラーを解決するには、まずは原因を特定し、適切な解決策を見つけなければなりません。リソースの追加や設定の調整、場合のよっては別のワークフローが必要になるかもしれません。
例えば、インポートを試みようとしてエラーが発生した場合は、WP-CLIやローカルのPHPまたはBashスクリプトを使用してコンテナ上で直接インポートすることをお勧めします。
「502 Bad Gateway」エラーの検出と解決
「502 Bad Gateway」エラーの原因を突き止めるため、以下のようなトラブルシューティングを行ってみてください。
サードパーティCDN
弊社のCloudflare統合に加えてサードパーティのCDNサービスを利用している場合は、後者を一時的に無効にするか、バイパスしてみてください。これでエラーが解消された場合は、設定を調整するか、CDNサービスのサポートにファイアウォールやその他の機能がサイトに干渉していないか確認してください。
エラーログ
MyKinstaでサイトのerror.logを確認(またはSFTPダウンロード)して、エラーの原因を絞り込みます。目ぼしいログが見つからない場合は、 WP-DEBUG
を有効にすることをお勧めします。
MyKinstaの分析機能
MyKinstaの分析画面で「レスポンス」タブの「500番台エラーの内訳」セクションを開き、502エラーの総数と発生日時を確認してみてください。
プラグインとテーマ
すべてのプラグインを停止し、デフォルトのテーマに切り替えてみてください。これでエラーが解消される場合は、エラーが再発するまでプラグインを1つずつ有効化し、テーマも有効化して、問題となっているプラグインまたはテーマを特定します。特定後は、プラグイン/テーマ開発者にエラーを報告し、解決方法を問い合わせてみてください。
PHPタイムアウトの最大値
弊社では、max_execution_time
またはmax_input_time
の値は、デフォルトで300秒(5分)に設定されています。利用可能なPHPタイムアウトの最大値は、ご利用のホスティングプランによって異なります。これらの値を増やす必要がある場合は、弊社カスタマーサポートまでチャットにてご連絡ください。
ワーカープロセス数
場合によっては、より多くのワーカープロセスが必要になることがあります。ご不明な場合は、弊社カスタマーサポートまでお気軽にご相談ください。
「504 Gateway Timeout」エラー
504エラーは通常、ブラウザとウェブサーバー間の接続が180秒以上保持され、HTTPタイムアウトが発生した場合に表示されます。
複数のリクエストが同時、またはほぼ同時に送信された場合、いくつかのリクエストが処理されるのを待つことになります。このため、サーバーでリクエストの処理が行われていても、それぞれの処理に時間がかると、大量のリクエストが蓄積されることになります。この待ち時間が長くなりすぎると、古くなったリクエストがサーバーに無視され、504エラーが返されるようになります。
一般的なエラーのトラブルシューティングと同様、まずはじめにエラーの原因を特定することが重要です。
「504 Gateway Timeout」エラーの検出と解決
インポート中のエラー
インポート中に504エラーが発生した場合は、WP-CLIまたはローカルのPHPまたはBashスクリプトを使用して、サーバー上で直接インポートを実行してみてください。これにより、HTTP接続が完全にバイパスされ、エラーなしでインポートを完了することができます。
サードパーティCDN
弊社のCloudflare統合に加えてサードパーティのCDNサービスを利用している場合は、後者を一時的に無効にするか、バイパスしてみてください。
アップロードパス
ファイルのアップロード時にファイルパスに関するエラーが表示される場合(コンテンツに画像を追加してアップロードする場合など)、アップロードパスが正しくない可能性があります。これはサイトを移行した直後によく見られ、以前利用していたホスティングの設定によっては、アップロードパスが変更されているかもしれません。これは、wp_options
テーブルまたはWordPress管理画面(「設定」>「メディア」>「ファイルアップロード」)のいずれかで確認可能です。
WordPressの管理画面で「アップロードするファイルの保存場所」と「ファイルへの完全なURLパス」という項目が表示されている場合は、アップロードパスが変更されています。データベースでは、wp_options table
のupload_path
とupload_url_path
で確認できます。
WordPress管理画面またはデータベースでこれらのフィールドを削除すると、デフォルトに戻すことができます。
アップロードのファイルサイズ
ファイルをアップロードしようとして、ファイルサイズに関するエラーが表示される場合は、ファイルのサイズを確認してください。一部CDNでは、アップロード可能なファイルサイズに制限があります。サードパーティのCDNをご利用の場合は、CDNの設定で最大アップロードサイズを確認し、アップロードしようとしているファイルのサイズが最大値を上回っていないことを確認してください。上限を超えるサイズのファイルをアップロードする必要がある場合は、最大アップロードサイズを変更してください(可能な場合)。
破損したデータベース
時に、破損したデータベースが504エラーの原因になることもあります。データベースの破損を示すエラーが表示される場合(「1つ以上のデータベーステーブルが使用できない」、WordPress管理画面へのログイン後「データベースの修復が必要」のようなメッセージ)、破損したデータベースの修復方法をご覧ください。
プラグインとテーマ
一般的ではありませんが、プラグインやテーマが原因であることもあります。すべてのプラグインを停止し、デフォルトのテーマに切り替えてみてください。これでエラーが解消される場合は、エラーが再発するまでプラグインを1つずつ有効化し、テーマも有効化して、問題となっているプラグインまたはテーマを特定します。特定後は、プラグイン/テーマ開発者にエラーを報告し、解決方法を問い合わせてみてください。
エラーログ
MyKinstaでサイトのerror.logを確認(またはSFTPダウンロード)して、エラーの原因を絞り込みます。目ぼしいログが見つからない場合は、 WP-DEBUG
を有効にすることをお勧めします。
トラフィックとキャッシュ
MyKinstaの分析画面で訪問数を確認し、サイトのトラフィックが急増していたり、キャッシュされていないリクエストが大量発生したりしていないかを確認してください。弊社カスタマーサポートまでチャットでご連絡いただけましたら、リクエストが正当なものかどうか、より多くのリソース(ワーカープロセスなど)が必要かどうかなどを確認させていただきます。
ワーカープロセス数
場合によっては、より多くのワーカープロセスが必要になることがあります。ご不明な場合は、弊社カスタマーサポートまでお気軽にご相談ください。
トラフィックの制御
サイトのトラフィックが急増している、あるいは単にトラフィックが増えているがリソースを増やしたくない場合、サーバーに一度に大量のリクエストが送信されるのを防ぐため、以下のようなキューイングシステムを実装する方法もあります。