速度改善・安全対策

WordPressで522 Connection Timed Outが出るときの直し方|Cloudflare・通信経路の確認順

Cloudflareを使うWordPressで「522 Connection Timed Out」が出て、公開ページや管理画面が長く待った後に開けないことがあります。アクセス集中時だけ、一部の地域だけ、サーバー移行後から、といった形でも発生します。

522は、Cloudflareがオリジンサーバーへ接続しようとしたものの、接続確立または要求の確認が規定時間内に進まなかった状態です。WordPressのページ生成が遅い524とは接続段階が異なります。

522が出た操作を何度も再送しないでください。注文、記事公開、メール送信、バックアップなどは、オリジン側で一部処理が進んでいる可能性があります。結果とログを確認してから再実行します。

先に結論:522エラーは8段階で確認する

  1. URL、時刻、タイムゾーン、Ray ID、操作内容を記録する
  2. 同じ操作の連打と自動再試行を止める
  3. Cloudflare・ホスティングの障害情報とオリジン稼働を確認する
  4. 521の接続拒否、522の接続待ち、524の応答待ちを分ける
  5. Cloudflare IP遮断、レート制限、DNSのオリジンIPを確認する
  6. CPU・メモリ・接続数・keepalive・パケット損失を調べる
  7. 原因に近い設定を一つだけ修正して一度再確認する
  8. 重複処理、公開表示、管理画面、ログ、検索クロールを確認する

ブラウザや利用者からの要求受信前に切れる408ならWordPressの408 Request Timeoutを直す手順、中継層が上流応答を待つ標準504ならWordPressの504 Gateway Timeoutを直す手順も確認してください。

522エラーとは?

Cloudflare公式のError 522は、Cloudflareがオリジンへの接続で時間切れになった状態です。接続確立前と、接続後に要求を確認できない場合の2種類があります。

接続確立前は、CloudflareがSYNを送ってから19秒以内にオリジンがSYN+ACKを返さない場合です。接続確立後は、Cloudflareの資源要求に対するACKをオリジンが90秒以内に返さない場合です。どちらも、WordPress本文が完成するまでの時間を直接示す数字ではありません。

接続を明確に拒否した場合は521、接続して要求を受け付けた後にHTTP応答が遅い場合は524です。エラー番号を見ずにPHP実行時間だけを増やしても、522の接続経路問題は解決しません。

接続確立または要求確認を待って停止した通信設備

408・504・521・522・524の違い

表示主な待ち最初に見るもの
408 Request Timeoutサーバーが利用者の要求を受け取り切る前送信、回線、要求受信
504 Gateway Timeout中継層が上流の応答を待つプロキシと上流処理
521 Web Server Is Down待たずに接続を拒否サーバー稼働、ポート、遮断
522 Connection Timed OutCloudflareとオリジンの接続・要求確認経路、遮断、負荷、DNS
524 A Timeout Occurred接続後にオリジンのHTTP応答を待つ長時間処理、DB、PHP、負荷

オリジンが接続を拒否しているならWordPressの521エラーを直す確認順へ切り替えます。サーバー過負荷で503も出る場合はWordPressの503エラーを直す安全な手順も使います。

WordPressで522が出る主な原因

1.Cloudflare IPが遮断またはレート制限されている

Cloudflare公式は、Cloudflare IP範囲が.htaccess、iptables、ファイアウォールなどで遮断・制限されることを代表原因に挙げています。明確な拒否応答を返さず通信を破棄すると、521ではなく522になる場合があります。

2.オリジンサーバーが過負荷または一時停止している

CPU、メモリ、同時接続、プロセス数が上限へ達すると、新しい接続や要求確認が遅れます。バックアップ、検索ボット、画像処理、wp-cron、外部連携が重なった時刻と522を照合します。

3.Cloudflare DNSのオリジンIPが古い

移行・復旧・IP変更後にA・AAAAが旧サーバーを指すと、Cloudflareが意図しない場所へ接続します。旧サーバーが通信を破棄する、存在しないIPv6へ接続するなどの形で522になる可能性があります。

4.keepaliveが無効または接続管理が不安定

Cloudflare公式は、オリジンでkeepaliveが無効なことも確認項目にしています。接続の再利用ができず接続数が増える、途中で接続を閉じる場合は、Webサーバーとロードバランサーの設定をホスティングへ確認します。

5.ネットワークでパケット損失や経路障害がある

サーバーが稼働していても、Cloudflareとオリジン間でパケットが落ちれば、SYN+ACKやACKが時間内に届きません。特定地域・Cloudflareデータセンターだけで発生する場合は、MTRやtracerouteをホスティングへ依頼します。

6.Workers・Origin Rules・独自経路が自己参照している

Cloudflare WorkersのCustom Domainが自分自身へfetchする、Origin Rulesが解決できないホスト名を向くなど、Cloudflare設定内の経路でも522が起こり得ます。直前にWorkersやOrigin Rulesを変更した場合はループと接続先を確認します。

最初の10分で行う安全な初動

1.結果不明の処理を再送しない

注文、決済、投稿公開、通知、バックアップは、画面が522でもオリジンで処理済みの場合があります。管理画面、メール、ログ、外部サービスの履歴を確認し、重複していないと分かってから再実行します。

2.Ray IDと再現範囲を保存する

URL、日時、タイムゾーン、Ray ID、利用した操作、地域・回線を記録します。全体・特定URL・特定地域・ログイン時だけかを分けると、サーバー負荷と経路問題を絞れます。

3.負荷を増やす処理を止める

異常なバックアップ再試行、クローラー、インポート、画像再生成が続いている場合は、結果を確認して安全に一時停止します。単に閲覧者を遮断するのではなく、増加源を止めます。

どの区間で待ちが発生したか特定する

確認区間見るもの判断の手がかり
Cloudflare EdgeRay ID、データセンター、エラー分析地域・URL別の偏りがあるか
DNS・Origin RulesA・AAAA・CNAME、接続先ホスト名現在のオリジンへ向いているか
ネットワークMTR、traceroute、パケット損失SYN+ACK・ACKが届く経路か
ファイアウォール遮断、レート制限、Cloudflare IP通信を黙って破棄していないか
オリジンCPU、メモリ、接続数、keepalive、ログ新規接続と要求確認に応じられるか
WordPresswp-cron、バックアップ、検索、PHP負荷を作る処理が同時刻にないか

Cloudflare公式IP資料と拒否ログを照合します。Cloudflare IPが少数の高頻度な接続元に見えることがあるため、実訪問者IPの復元とレート制限も確認します。

WordPress側の負荷が疑わしい場合は、WordPressが重い原因を安全な順に調べる手順で、画像、キャッシュ、プラグイン、DB、サーバーを一度に変えず確認します。

パケット損失とオリジン負荷を観測する立体設備

原因別の安全な直し方

1.Cloudflare IPの誤遮断と制限を直す

公式IP範囲と同時刻の遮断ログを照合し、ホスティングへ必要な80・443番通信の許可を依頼します。ファイアウォール全停止ではなく、正規のCloudflare通信だけを対象にします。

2.オリジン負荷の発生源を減らす

同時刻に増えたPHP、DB、バックアップ、ボット、wp-cronを特定します。緊急時は重いジョブを対象限定で止め、キャッシュやレート制限を安全に使います。容量やタイムアウト値だけを無制限に広げません。

3.DNSとオリジンIPを現在値へそろえる

ホスティングが示すIPv4・IPv6とCloudflareのA・AAAAを照合します。AAAAの接続先が利用できない場合は、IPv6の提供状況を確認してから対象レコードを修正します。推測で全レコードを削除しません。

4.keepaliveと接続上限をホスティングへ確認する

Webサーバー、ロードバランサー、プロキシでkeepaliveが有効か、接続数上限が実負荷に合うかを確認します。共有サーバーでは自己判断で設定できないことがあるため、Ray IDと時刻を添えて提供元へ依頼します。

5.経路障害はMTR・tracerouteで提供元と調べる

オリジンから、普段接続していたCloudflare IP方向の経路を調べます。経路上の一地点だけを見て障害と断定せず、複数時刻・複数経路の損失とオリジンログを合わせます。

6.Workers・Origin Rulesの自己参照を解消する

対象ホスト名が自分自身へ戻る設定、解決不能なホスト名、予約アドレスへの接続がないか確認します。変更前のルールを保存し、問題のルールだけを無効化または接続先修正します。

安定したハンドシェイクと要求確認が戻った通信回廊

やってはいけない対処

  • 注文・保存・通知を結果確認前に連打する
  • ファイアウォールやWAFを恒久的に全停止する
  • Cloudflare IPを確認せず古い一覧で許可する
  • DNSのA・AAAAを推測で一括変更する
  • 522をPHP処理時間だけの問題と決めつける
  • CPU・メモリ・接続上限を一度に拡大する
  • ログを取らずCloudflareを停止して解決扱いにする
  • Ray ID、オリジンIP、認証情報を公開する

復旧後の確認チェックリスト

  • Cloudflare経由で主要URLが200を返す
  • 別地域・別回線でも522が再発しない
  • 注文、投稿、通知に重複がない
  • CPU・メモリ・接続数が正常範囲である
  • Cloudflare IPが遮断されていない
  • A・AAAAが現在のオリジンを示す
  • keepaliveと接続管理が正常である
  • 異常なバックアップ・wp-cron再試行がない
  • 管理画面、REST API、フォームが正常である
  • 監視とバックアップが正常に戻っている

Google公式資料では5xxが続くとクロールが一時的に減り、長期化したURLはインデックスから外れる可能性があります。復旧後は重要URLの2xxと5xx件数の減少を確認します。

自力で直せないときに伝える情報

  • 522が出たURL、日時、タイムゾーン
  • Ray IDとCloudflareデータセンター
  • 全体・特定URL・特定地域のどれか
  • オリジンのCPU・メモリ・接続数
  • 同時刻のファイアウォールとWebサーバーログ
  • Cloudflare DNSの接続先を確認した結果
  • 直前の移行、WAF、Workers、Origin Rules変更
  • 重複処理の有無と実施済み対処

ホスティングには、Cloudflare IPからの接続、パケット損失、keepalive、接続上限を調べてもらいます。必要ならMTR・tracerouteとRay IDをそろえてCloudflareへ相談します。

よくある質問

522と524は同じタイムアウトですか?

同じではありません。522はCloudflareとオリジンの接続確立または要求確認、524は接続後にオリジンのHTTP応答を待つ段階です。確認する設定とログが変わります。

時間を置けば直りますか?

一時負荷や経路障害なら戻る場合がありますが、IP遮断、古いDNS、keepalive設定は残ります。復旧しても原因と再発条件を確認してください。

WordPressのキャッシュ削除で直りますか?

通常のページキャッシュだけでは、接続経路やCloudflare IP遮断は直りません。負荷原因がキャッシュ未使用にある場合は役立ちますが、全削除による再生成負荷にも注意します。

まとめ

522 Connection Timed Outは、Cloudflareからオリジンへの接続または要求確認が時間内に進まない状態です。PHP実行時間だけでなく、ネットワークと接続受付を確認します。

  • Ray IDと結果不明の操作を最初に保存する
  • 521・522・524の接続段階を分ける
  • IP遮断、負荷、DNS、keepalive、経路を確認する
  • 一度に一つだけ修正する
  • 復旧後に重複処理と検索クロールも確認する

-速度改善・安全対策