サイトの訪問者にエラー520が表示された場合、サーバーが空の、または不明な、または予期しない応答を返したため、Cloudflareがこのメッセージを送信しています。

エラー520は、まずトラブルシューティングで原因を特定してから、次の手順に従って修正できます。

さて、始めましょう。

エラー520のトラブルシューティング

エラー520はサーバーの問題が原因で発生するため、エラーログを調べることでトラブルシューティングできます。

エラー520
ウェブサイトのエラー520の一例

Cloudflareの無効化

トラブルシューティングを開始する前に、Cloudflareを無効にする必要があります。Cloudflareを要因とせずに問題が再発することは、真の原因を特定するのに役立ちます。

ステップ1

まず、Cloudflareにログインします。次に、該当のサイトをリストから選択して、クリックします。

Cloudflareダッシュボード
該当のサイトをクリックする

ステップ2

次に、「DNS」タブをクリックしてから、表の「Proxy status」(プロキシ状態)の下のオレンジ色の雲をクリックします。雲がグレーになっていると、Cloudflareが無効になっています。

DNSタブ
オレンジ色の雲をクリックしてCloudflareを無効にする

Cloudflareの一時停止

または、ログイン後にCloudflareを一時停止することもできます。

ステップ1

リストで該当のサイトをクリックします。

Cloudflareダッシュボード
ログイン後、リストで該当のサイトをクリックする

ステップ2

次に、サイドバーに「Advanced Actions」(詳細アクション)が表示されるまで下にスクロールします。「Pause Cloudflare on Site」(このサイトでCloudflareを一時停止する)をクリックします。

Cloudflareダッシュボードページの下部
リンクをクリックしてCloudflareを一時停止する

ステップ3

Cloudflareの一時停止を確定するポップアップが表示されます。「Confirm」(確定)ボタンをクリックします。

Cloudflareの一時停止を確定するポップアップ
「確認」をクリックして、Cloudflareを一時停止する

開発モードに入る

Cloudflareの一時停止も無効化も実施したくない場合は、Cloudflareを実行し続けることができますが、エラー520のトラブルシューティングができるように開発モードに切り替えます。

ステップ1

Cloudflareにログインした後、ページの上部にある「Caching」(キャッシュ)タブをクリックします。

CloudflareのCaching ページ
Cachingタブに移動する

ステップ2

次に、「Development Mode」(開発モード)セクションまでスクロールダウンし、「Off」(オフ)トグルをクリックします。 「On」(オン)と表示されるはずです。

Cachingページ
トグルをクリックして、開発モードをオンにする

サーバーのエラーロブを確認する

Cloudflareを無効化、一時停止、または開発モードにした上、サーバーのエラーログを確認して、エラー520のトラブルシューティングを行うことができます。

エラーログの場所はホスティング会社によって異なる場合がありますので、場所がわからない場合はホスティング会社にお問い合わせください。

ホスティング会社がcPanelを使用している場合、以下の手順に従ってください。

ステップ1

cPanelにログインし、ダッシュボードで「メトリック」セクションに移動します。次に「エラー」ボタンをクリックします。

cPanelダッシュボード
メトリック」の「エラー」ボタンをクリックする

ステップ2

エラーログ画面には、最大300件のエラーが新しい順に表示されます。ユーザーまたはホスティング会社が設定を調整した場合、エラーログで表示される件数がさらに多い場合もあります。

cPanelのエラーログ
cPanelのエラーログを確認して、エラー520のトラブルシューティングを行う

MyKinstaを使用してエラー520のログを確認する

Kinstaのお客さまには、以下の手順に従ってエラーログを確認していただけます。

ステップ1

MyKinstaにログインし、左側のメニューの「サイト」をクリックします。次に、リストからトラブルシューティングするサイトを選択します。

MyKinstaダッシュボード
MyKinstaのメニューで「サイト」をクリックする

ステップ2

「ログ」タブをクリックします。デフォルトでは、エラーログが表示されます。リストに何も表示されない場合は、該当のサイトではエラーが発生したことがありません。

「ログ」タブ
エラーが発生した場合は、「ログ」タブに表示される

 

エラーログを解釈方法

エラーログの各メッセージには構造があります。その構造さえ理解できれば、表示されるエラーメッセージを解釈できます。

[Fri Oct 11 17:00:30 2019] [error] [client 123.4.56.7] error description: /path/to/file/with/error

最初にメッセージの日付と時間が表示され、その後にメッセージの重大度レベルを通知するLogLevelディレクティブが表示されます。

次は、問題の原因となったクライアントのIPアドレスです。

最後に、実際のメッセージが表示されます。これに、エラーの影響を受けたファイルへのパスが含まれる場合があります。

エラーログのメッセージに表示されるLogLevelの重大度レベルは次のとおりです。

  • Emerg(緊急) — エラーの内容は緊急事項であり、サーバーが利用できません。
  • Alert(警報) — このレベルが表示された場合、すぐに対策する必要があります。
  • Crit (重大) — 重大な状態を表しています。
  • Error(エラー) — エラーが発生しました。
  • Warn(警告) — 注意を要するが重大ではない問題に関する警告です。
  • Notice(注意) — サーバーが正常であるが、重要な注意事項が発生しました。
  • Info(情報) — このレベルでは一般情報が利用可能です。
  • Debug(デバッグ) — デバッグを有効にしている場合に表示されます。

cURLコマンドを使用してエラー520のトラブルシューティングを行う

オリジンサーバに対してテストすることにより、cURLコマンドを使用してもエラー520のトラブルシューティングを行うことができます。

curl -vso /dev/null --user-agent "Mozilla 5.0" -H "Host: your-site.com" http://123.45.6.789/wp-login.php

「http://your-site.com」を必ず実際のドメインに変更してください。 また、「123.45.6.789」も実際のIPアドレスに変更してください。ログインページを調整した場合は、「wp-login.php」も変更する必要があります。

正常のレスポンスヘッダーは次の例のようなものになります。

* Hostname was NOT found in DNS cache
*   Trying 123.45.6.789...
* Connected to 123.45.6.789 (123.45.6.789) port 80 (#0)
> GET /login HTTP/1.1
> User-Agent: Mozilla 5.0
> Accept: */*
> Host: your-site.com
>
< HTTP/1.1 200 OK
< Content-Type: text/html
< Date: Day, DD, Month Year Hour:Minute:Second Timezone
{ [12345 bytes data]
* Connection #0 to host 123.45.6.789 left intact

上記のようなメッセージが表示された場合、「エラー520」応答なしで正常にサイトにアクセスできました。

一方、以下の例のようなレスポンスヘッダーが表示される場合、Cloudflareが有効であったときに「520エラー」が発生しました。

* Hostname was NOT found in DNS cache
*   Trying 123.45.6.789...
* Connected to 123.45.6.789 (123.45.6.789) port 80 (#0)
> GET /login HTTP/1.1
> User-Agent: Mozilla 5.0
> Accept: */*
> Host: your-site.com
>
* Empty reply from server
* Connection #0 to host 123.45.6.789 left intact

HARファイルを生成するには

HARファイルは、オリジンサーバーに送信されるリクエストとCloudflareを経由するリクエストの情報が保存されるHTTPアーカイブファイルです。

オリジンサーバーとプロキシとして使用されている場合にCloudflare のレスポンスヘッダーを比較するため、トラブルシューティングに役立ちます。

また、エラー520が発生した原因はヘッダーが大きすぎることである場合、ヘッダーが実際に大きすぎるかを判断するためにも使用されます。

以下の手順に従うと、ブラウザでHARファイルを作成できます。

Chrome

ステップ1

ブラウザを開き、ページを右クリックします。次に、「検証」を選択します。

Chromeで右クリック
Chromeを右クリックして、「検証」を選択する
ステップ2

パネルが開いたら、「Network」(ネットワーク)タブをクリックして、パネルの左上にある丸ボタンが赤になっているかを確認します。グレーになっている場合は、クリックします。

Chrome開発者ツール
「Network 」タブのボタンが赤であることを確認する
ステップ3

記録ボタンの横にある「Preserve log」(ログの保存)をオンにして、「Clear 」(クリア)ボタンをクリックします。

Chrome開発者ツール
「ログの保存」を選択して前のメッセージをクリアする
ステップ4

エラー520が表示されるページを読み込みます。次に、Chromeの開発者ツールのメッセージ画面の任意の場所を右クリックします。

Save as HAR with Content 」(コンテンツ付きHARとして保存)を選択し、ファイルをコンピューターに保存します。

Chromeの開発者ツールのメッセージが右クリックされた
HARファイルをコンピューターに保存する

Firefox

ステップ1

Firefoxを開き、ページを右クリックします。次に、「要素を調査」を選択します。

Firefoxでページが右クリックされた
ページを右クリックして、「要素を調査」を選択する
ステップ2

Network」(ネットワーク)タブに移動し、520エラーが表示されるページにアクセスします。パネルのメッセージを右クリックして、「HAR 形式ですべて保存」を選択します。

ファイルをコンピューターに保存します。

Firefox開発者ツールのNetworkタブ
右クリックして、HARファイルの保存を選択する

Edge

ステップ1

Edgeブラウザを開き、ページを右クリックします。「要素の検査」を選択します。

Edgeブラウザ
ブラウザで右クリックをしてから「要素の検査」を選択する
ステップ2

Network」(ネットワーク)タブに移動し、まるい記録ボタンが赤になっているかを確認します。そうでない場合は、クリックします。 「Preserve log」(ログの保存)にも、アイコンにもチェックを入れて現在のメッセージをクリアします。

開発者ツールのNetworkタブ
クリックしてログを保存し、古いメッセージを消去する
ステップ3

エラー520が発生しているページに移動します。次に開発ツールのパネルのメッセージを右クリックして、「Save all as HAR with content」(コンテンツ付きのHAR 形式ですべて保存)を選択します。

ファイルをコンピューターに保存します。

Safari

ステップ1

Safariを開いてから、Windowsではページを右クリックします。MacではキーボードのCMDを押します。「要素を検査」を選択します。

Safariブラウザー
ページを右クリックし、「要素を検査」を選択する
ステップ2

ネットワーク」タブに移動します。「Preserve log」(ログの保存)をオンにして、エラー520が発生しているページに移動します。

Safari開発者ツールパネル
「ネットワーク」タブで「Preserve log」をオンにする
ステップ3

「Export 」(エクスポート)ボタンをクリックして、HARファイルをコンピューターに保存します。

Safari開発者ツール
HARファイルをエクスポートする

エラー520のよくある原因の処理方法

エラーログを取得した上で、以下の問題のいずれかが発生したかどうかを確認します。次に、該当の手順に従って問題を解決します。

オリジンサーバのPHPアプリケーションがクラッシュしました

エラー520のよくある原因の一つは、サーバーのPHPアプリケーションの1つがクラッシュしたことです。解決するには、PHPを再起動します。

ステップ1

Apacheサーバーでは、SSHを使用して以下のコマンドを入力します。

apache2ctl restart

Nginxサーバーでは、以下のコマンドを使用してPHPを再起動します。

service nginx restart

PHPをMyKinstaで再起動する

Kinstaのお客さまには、数クリックするだけでPHPを再起動いただけます。

ステップ1

MyKinstaにログインし、左側の「サイト」をクリックします。次に、該当のサイトをクリックします。

MyKinstaダッシュボード
MyKinstaのリストから該当のサイトを選択する
ステップ2

ツール」タブに移動し、「PHPリスタート」ボタンをクリックします。

PHPを再起動してエラー520を解決するMyKinstaダッシュボードの「ツール」タブ
MyKinstaのコントロールパネルでPHPを再起動する

CloudflareのIPアドレスがホワイトリストに登録されていません

520エラーが発生するもう一つの原因は、CloudflareのIPアドレスがホワイトリストに登録されていないことです。ホワイトリストに登録できますが、手順はホスティングプロバイダーによって異なります。

IPをホワイトリストに登録する方法が不明な方は、特にその設定がご自分で見つからない場合は、ホスティング会社までお問い合わせください。

Kinstaでは、CloudflareのIPアドレスはデフォルトでホワイトリストに登録されているため、この原因を心配する必要はありません。また、エラーが発生する他の理由にも影響しません。

TCPアイドルタイムアウトが300秒未満

伝送制御プロトコル(TCP)もエラー520の原因になる場合があります。

TCPは、ネットワーク接続を確立して維持する標準のプロトコルです。TCPが300秒未満でタイムアウトするように設定されている場合、エラー520が発生することがあります。

CLIコマンドを使用してTCPサービスのタイムアウトを変更できます。

set service Service-HTTP-1 -svrTimeout 500

ヘッダーが8 KBを超えています

この問題は通常、クッキーの数または容量が大きすぎることが原因です。この問題が発生している場合、トラブルシューティングの際にダウンロードしたHARファイルで簡単に確認できます。

Cloudflareには、ヘッダーに対して8 KBの制限があります。

独自のプラグインを作成して、そのプラグインが必要とするクッキーの数が多すぎるか、クッキーのデータが多すぎる場合は、減らしてみてください。または、クッキーを大量に必要とするプラグインを数多く堀用の場合、そのプラグインの一部を削除してください。(必ず高品質のプラグインを使用するようにしてください。)

サーバーからの空の応答

この問題は、サイトにHTTPステータスコードの一つまたは応答本文がない場合に発生します。解決するには、サイトのドメインに対してのDNS設定が正しく設定されているかを確認します。

設定の確認手順は、DNSホストによって異なります。ホスティングプランにDNSが含まれている場合は、ホスティング会社までお問い合わせください。

DNS設定を更新した場合、サイトに反映されるまでに最大72時間かかる場合がありますので、ご注意ください。つまり、サイトが最大3日間利用できなくなる恐れがあります。

DNS設定を変更してから、サイトのキャッシュをクリアします。WordPressサイトにキャッシュプラグインがインストールされ、そのプラグインを使用してサイトのキャッシュをクリアする方法が不明な方は、プラグインの取扱説明書を確認してください。

ホスティング会社を通じてサイトのキャッシュをクリアすることもできます。手順が不明な方は、必ずホスティング会社までお問い合わせください。

Kinstaのお客さまには、メニューの「サイト」をクリックして、該当のサイトをクリックいただきます。

次に、「ツール」タブをクリックして、「キャッシュをクリア」ボタンをクリックするだけです。

MyKinstaの「ツール」タブ
MyKinstaを使用してサイトのキャッシュをクリアできる

 

DNS設定を更新して、サイトが再び利用可能になって、サイトのキャッシュをクリアしても、エラー520が引き続き発生してしまうと、サーバーを再起動します。

設定メニューでサーバーの再起が見つからない場合は、Kinstaのサポートチームまでお問い合わせください。サポートいたします。

レスポンスヘッダーがありません

Mozillaによると

「レスポンスヘッダーは、 HTTP レスポンスで使用できる HTTP ヘッダーで、メッセージの内容には関連しないものです。Age, Location, Server のようなレスポンスヘッダーは、レスポンスのものより詳細な文脈を提供するために使用されます。」

レスポンスヘッダーが、さまざまな理由でなくなります。

この問題の最善の策は、Fiddlerなどのデバッグツールを使用してデバッグを行い、問題を特定して修正することです。

サーバーが適切なHTTPエラーレスポンスを返しません

サーバーが無効なエラーレスポンスを送信したとき、520エラーが発生する場合があります。メッセージがHTTPレスポンスコードの標準リストに適合しなかったことを意味します。

サーバーが原因であるか、PHPアプリケーションやWordPressサイトで使用されているプラグインなど、サーバー上のものが原因である可能性があります。

修正するための不適切なエラーコードのソースが見つからない方は、サポートまでお問い合わせください。

Cloudflareを再度有効にする

エラーが再度発生されるかどうかを確認します。発生する場合は、Cloudflareを無効のままにしてトラブルシューティングを続けます。

520エラーが解決された場合、Cloudflareを再度有効にします。

ステップ1

これを行うには、Cloudflareにログインし、アカウントで雲をグレーにしてCloudflareを無効にした場合、最初にリストから該当のサイトを選択します。

Cloudflareダッシュボード
Cloudflareを有効にするサイトを選択する

ステップ2

DNS」タブをクリックし、グレーの雲をクリックしてCloudflareを再度有効にします。

TCloudflareサイトのDNSタブ
グレーの雲をクリックして、Cloudflareを有効にする

Cloudflareの一時停止後の再起動

ステップ1

Cloudflareを以前に一時停止した場合は、Cloudflareにログインしてダッシュボードのリストで該当のサイトをクリックして再起動します。

Cloudflareダッシュボード
Cloudflareを復元するサイトを選択する

ステップ2

次に、「Overview」(概要)タブに移動し、ページの右側のサイドバーの「Advanced Actions」(詳細アクション)が表示されるまでスクロールダウンします。

Enable Cloudflare on Site」(このサイトでCloudflareを有効にする)をクリックします。

Cloudflareダッシュボード
Cloudflareを再度有効にするリンクをクリックする

開発モードをオフにする

ステップ1

以前にCloudflareの開発モードを有効にした場合は、ログインして再度無効にします。次に、リストで該当のサイトをクリックします。

Cloudflareダッシュボード
該当のサイトを選択する

ステップ2

Caching」(キャッシュ)タブに移動します。

CloudflareのサイトのCachingタブ
Cachingタブをクリックする

ステップ3

Development Mode」(開発モード)セクションまでスクロールダウンし、「オン」になっているトグルボタンをクリックします。

Cachingタブ
トグルをクリックして開発モードを無効にする

それでも駄目なら

それでも駄目なら、Cloudflareサポートまでお問い合わせください。

次の情報をお伝えください。

  • エラーが発生したときに要求されたリソースの完全なURL
  • エラー520メッセージが表示されたページのCloudflareのRay ID
  • http://your-site.com/cdn-cgi/traceからの出力(「your-site.com」を実際のドメイン名に置き換えてください。)
  • 2つのHARファイル:1つ目はサイトでCloudflareが有効になったときのファイル、もう1つはCloudflareが無効になったときのファイル

まとめ

520エラーは、Cloudflareのエラーであるため、分かりにくい異常です。ただし、Cloudflareが接続されない原因となるサーバーのエラーに違いありません。

上記の手順は、エラー520の最もよくある原因の解決策です。すべてを実施しても問題が解決しない場合は、Cloudflareまたはホスティング会社のサポートまでお問い合わせください。