Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

エラー 520

最終更新 Markdown で表示Agent セットアップ

エラー 520: web server returns an unknown error

このエラーは、オリジンサーバーが Cloudflare へ空、不明、または想定外のレスポンスを返したときに発生します。

よくある原因

次の要因で起きることが多いです。

  • オリジンサーバーのクラッシュまたは設定不備。
  • オリジンでファイアウォールやセキュリティプラグインが Cloudflare IP をブロックしている。
  • ヘッダーが 128 KB を超えている(Cookie の過多が原因になりやすい)。
  • HTTP ステータスコードまたはレスポンス本文がない、空または不正なレスポンス。
  • レスポンスヘッダーの欠落、またはオリジン Web サーバーが 適切な HTTP エラーレスポンス を返していない。
  • オリジンサーバーの HTTP/2 設定が正しくない。
  • Cloudflare で Authentication Origin Pull を有効にしているのに、オリジンが 想定どおりに設定されていない

解決方法

  • ホスティングプロバイダーまたはサイト管理者に連絡し、切り分けに必要な エラーの詳細 を共有します。オリジン Web サーバーのエラーログでクラッシュを確認し、前のセクションの よくある原因 も確認するよう依頼します。

  • オリジンサーバーで HTTP/2 が有効な場合は、正しく設定されていることを確認します。Cloudflare は ALPN で HTTP/2 対応を告知したサーバーへ接続します。オリジン Web サーバーが HTTP/2 接続を受け入れたあと、プロトコルを尊重またはサポートしないと、HTTP 520 が返ります。Cloudflare ダッシュボードの Speed > Settings > Protocol OptimizationHTTP/2 to Origin を無効にできます。

  • ホスティングプロバイダーまたはサイト管理者へ連絡したあとも 520 が続く場合は、次の情報を Cloudflare サポート へ提供します。

    • エラー発生時にリクエストしたリソースの完全な URL
    • 520 エラーメッセージの Cloudflare cf-ray
    • http://<YOUR_DOMAIN>/cdn-cgi/trace の出力
    • HAR ファイル を 2 つ:

ログの OriginResponseStatus でオリジン接続を切り分ける

Cloudflare Logs(Logpushhttp_requests データセット)を確認するとき、OriginResponseStatus フィールドはオリジンが返した HTTP ステータスコードを示します。

OriginResponseStatus の値 0 は、文脈によって意味が異なります。

  • オリジンへ未接続(キャッシュヒットまたは再検証レスポンス): リクエストはキャッシュから返され、Cloudflare はオリジンに接続していません。オリジンのエラー率を計算するときは、これらを除外します。オリジンの問題ではありません。
  • オリジン接続の失敗: Cloudflare はオリジンへ接続を試みましたが、HTTP レスポンスを受け取れませんでした。オリジンがレスポンスヘッダー送信前に TCP 接続を切った、ヘッダー送信前にタイムアウトした、または Cloudflare が解析できない不正なレスポンスを送った、のいずれかです。Cloudflare はエラーページを自ら生成します(通常は 520 または 500)。

両者を区別するには、同じログレコードの CacheStatus フィールドを確認します。

  • CacheStatushit または revalidated → オリジンへ未接続。OriginResponseStatus = 0 は想定どおりです
  • CacheStatusmiss または expired → Cloudflare はオリジンに接続しています。OriginResponseStatus = 0 は接続失敗を示します

Origin Analytics で切り分ける

Origin Analytics で、オリジンが返した内容(originResponseStatus)と、Cloudflare がエンドユーザーへ返した内容(edgeResponseStatus)を比較します。オリジンが 200 を返したのに Cloudflare が 520 を返した場合、レスポンスが不正だった可能性が高いです。ヘッダー過大や、接続の早期切断などです。Top endpoints テーブルで、520 が発生しているパスを特定できます。

役に立ちましたか?