
サイトで Cloudflare を使用していて「Error 520: web server returns an unknown error」に遭遇したことはありますか? このエラーメッセージは、Cloudflare がオリジンサーバーに接続できなかったことを示します。このエラーは、オリジンサーバーからの予期しない・空の・不明なレスポンスなど、さまざまな問題が原因で発生し得ます。本記事では、520 エラーの原因とその解決方法について説明します。
Cloudflare Error 520 の回避策
520 エラーの原因を調査している間の手早い回避策の 1 つは、Cloudflare の DNS アプリでレコードを DNS のみにするか、Cloudflare を一時的に一時停止することです。これにより、問題が Cloudflare 側かオリジンサーバー側かを判別できます。
520 エラーが発生した場合は、Hosting プロバイダーまたはサイト管理者に連絡することが不可欠です。クラッシュや致命的エラーがないか Web サーバーのエラーログをレビューするよう依頼してください。一般的な原因として、オリジン Web サーバーアプリケーションのクラッシュ、オリジン側で Cloudflare の IP が許可されていない、ヘッダーが 16 KB を超えている、HTTP ステータスコードやレスポンスボディを欠いた空のレスポンスがオリジン Web サーバーから返されている、などが該当します。
エラーの他の原因としては、レスポンスヘッダーの欠落、オリジン Web サーバーが適切な HTTP エラーレスポンスを返していないことなどがあります。アップストリームからレスポンスヘッダーを読み込んでいる間にアップストリームが早期に接続を閉じた場合、Cloudflare で 520 エラーが発生することがあります。
一部の PHP アプリケーションは、オリジン Web サーバーをクラッシュさせ、520 エラーを引き起こすことがあります。PHP アプリケーションを使用している場合は、最新のバージョンとパッチに保つことが不可欠です。
Hosting プロバイダーやサイト管理者に連絡した後も 520 エラーが続く場合は、問題解決のために以下の情報を Cloudflare サポートに提供できます。
- エラー発生時にリクエストされたリソースの完全な URL
- 520 エラーメッセージから得られる Cloudflare の cf-ray
- http://www.example.com/cdn-cgi/trace の出力 (www.example.com を、520 エラーが発生したホスト名とドメインに置き換えてください)
- 2 つの HAR ファイル: サイト上で Cloudflare を有効化したものと、Cloudflare を一時的に無効化したもの。
HAR ファイルは、HTTP ヘッダー・レスポンスコード・タイミング情報を含む、ブラウザとサーバー間のネットワーク活動の詳細な情報を提供します。この情報は Cloudflare サポートが問題を診断して修正するのに役立ちます。
結論として、「Error 520: web server returns an unknown error」は、オリジン Web サーバーのクラッシュ、オリジン側で Cloudflare の IP が許可されていない、ヘッダーが 16 KB を超えている、オリジン Web サーバーからの空のレスポンスなど、さまざまな問題が原因で発生し得ます。このエラーに遭遇した場合、問題解決のために Hosting プロバイダーまたはサイト管理者に連絡することが重要です。さらに、Cloudflare サポートに詳細な情報を提供することで、エラーを解決し再発を防ぐのに役立ちます。問題をさらに調査する間は、レコードを DNS のみにするか Cloudflare を一時停止する手早い回避策を試すことを忘れないでください。