サイトの訪問者にエラー520が表示された場合、サーバーが空の、または不明な、または予期しない応答を返したため、Cloudflareがこのメッセージを送信しています。
エラー520は、まずトラブルシューティングで原因を特定してから、次の手順に従って修正できます。
さて、始めましょう。
エラー520のトラブルシューティング
エラー520はサーバーの問題が原因で発生するため、エラーログを調べることでトラブルシューティングできます。
Cloudflareの無効化
トラブルシューティングを開始する前に、Cloudflareを無効にする必要があります。Cloudflareを要因とせずに問題が再発することは、真の原因を特定するのに役立ちます。
ステップ1
まず、Cloudflareにログインします。次に、該当のサイトをリストから選択して、クリックします。
ステップ2
次に、「DNS」タブをクリックしてから、表の「Proxy status」(プロキシ状態)の下のオレンジ色の雲をクリックします。雲がグレーになっていると、Cloudflareが無効になっています。
Cloudflareの一時停止
または、ログイン後にCloudflareを一時停止することもできます。
ステップ1
リストで該当のサイトをクリックします。
ステップ2
次に、サイドバーに「Advanced Actions」(詳細アクション)が表示されるまで下にスクロールします。「Pause Cloudflare on Site」(このサイトでCloudflareを一時停止する)をクリックします。
ステップ3
Cloudflareの一時停止を確定するポップアップが表示されます。「Confirm」(確定)ボタンをクリックします。
開発モードに入る
Cloudflareの一時停止も無効化も実施したくない場合は、Cloudflareを実行し続けることができますが、エラー520のトラブルシューティングができるように開発モードに切り替えます。
ステップ1
Cloudflareにログインした後、ページの上部にある「Caching」(キャッシュ)タブをクリックします。
ステップ2
次に、「Development Mode」(開発モード)セクションまでスクロールダウンし、「Off」(オフ)トグルをクリックします。 「On」(オン)と表示されるはずです。
サーバーのエラーロブを確認する
Cloudflareを無効化、一時停止、または開発モードにした上、サーバーのエラーログを確認して、エラー520のトラブルシューティングを行うことができます。
エラーログの場所はホスティング会社によって異なる場合がありますので、場所がわからない場合はホスティング会社にお問い合わせください。
ホスティング会社がcPanelを使用している場合、以下の手順に従ってください。
ステップ1
cPanelにログインし、ダッシュボードで「メトリック」セクションに移動します。次に「エラー」ボタンをクリックします。
ステップ2
エラーログ画面には、最大300件のエラーが新しい順に表示されます。ユーザーまたはホスティング会社が設定を調整した場合、エラーログで表示される件数がさらに多い場合もあります。
MyKinstaを使用してエラー520のログを確認する
Kinstaのお客さまには、以下の手順に従ってエラーログを確認していただけます。
ステップ1
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
ブラウザを開き、ページを右クリックします。次に、「検証」を選択します。
ステップ2
パネルが開いたら、「Network」(ネットワーク)タブをクリックして、パネルの左上にある丸ボタンが赤になっているかを確認します。グレーになっている場合は、クリックします。
ステップ3
記録ボタンの横にある「Preserve log」(ログの保存)をオンにして、「Clear 」(クリア)ボタンをクリックします。
ステップ4
エラー520が表示されるページを読み込みます。次に、Chromeの開発者ツールのメッセージ画面の任意の場所を右クリックします。
「Save as HAR with Content 」(コンテンツ付きHARとして保存)を選択し、ファイルをコンピューターに保存します。
Firefox
ステップ1
Firefoxを開き、ページを右クリックします。次に、「要素を調査」を選択します。
ステップ2
「Network」(ネットワーク)タブに移動し、520エラーが表示されるページにアクセスします。パネルのメッセージを右クリックして、「HAR 形式ですべて保存」を選択します。
ファイルをコンピューターに保存します。
Edge
ステップ1
Edgeブラウザを開き、ページを右クリックします。「要素の検査」を選択します。
ステップ2
「Network」(ネットワーク)タブに移動し、まるい記録ボタンが赤になっているかを確認します。そうでない場合は、クリックします。 「Preserve log」(ログの保存)にも、アイコンにもチェックを入れて現在のメッセージをクリアします。
ステップ3
エラー520が発生しているページに移動します。次に開発ツールのパネルのメッセージを右クリックして、「Save all as HAR with content」(コンテンツ付きのHAR 形式ですべて保存)を選択します。
ファイルをコンピューターに保存します。
Safari
ステップ1
Safariを開いてから、Windowsではページを右クリックします。MacではキーボードのCMDを押します。「要素を検査」を選択します。
ステップ2
「ネットワーク」タブに移動します。「Preserve log」(ログの保存)をオンにして、エラー520が発生しているページに移動します。
ステップ3
「Export 」(エクスポート)ボタンをクリックして、HARファイルをコンピューターに保存します。
エラー520のよくある原因の処理方法
エラーログを取得した上で、以下の問題のいずれかが発生したかどうかを確認します。次に、該当の手順に従って問題を解決します。
オリジンサーバのPHPアプリケーションがクラッシュしました
エラー520のよくある原因の一つは、サーバーのPHPアプリケーションの1つがクラッシュしたことです。解決するには、PHPを再起動します。
ステップ1
Apacheサーバーでは、SSHを使用して以下のコマンドを入力します。
apache2ctl restart
Nginxサーバーでは、以下のコマンドを使用してPHPを再起動します。
service nginx restart
PHPをMyKinstaで再起動する
Kinstaのお客さまには、数クリックするだけでPHPを再起動いただけます。
ステップ1
MyKinstaにログインし、左側の「サイト」をクリックします。次に、該当のサイトをクリックします。
ステップ2
「ツール」タブに移動し、「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のお客さまには、メニューの「サイト」をクリックして、該当のサイトをクリックいただきます。
次に、「ツール」タブをクリックして、「キャッシュをクリア」ボタンをクリックするだけです。
DNS設定を更新して、サイトが再び利用可能になって、サイトのキャッシュをクリアしても、エラー520が引き続き発生してしまうと、サーバーを再起動します。
設定メニューでサーバーの再起が見つからない場合は、Kinstaのサポートチームまでお問い合わせください。サポートいたします。
レスポンスヘッダーがありません
「レスポンスヘッダーは、 HTTP レスポンスで使用できる HTTP ヘッダーで、メッセージの内容には関連しないものです。Age, Location, Server のようなレスポンスヘッダーは、レスポンスのものより詳細な文脈を提供するために使用されます。」
レスポンスヘッダーが、さまざまな理由でなくなります。
この問題の最善の策は、Fiddlerなどのデバッグツールを使用してデバッグを行い、問題を特定して修正することです。
サーバーが適切なHTTPエラーレスポンスを返しません
サーバーが無効なエラーレスポンスを送信したとき、520エラーが発生する場合があります。メッセージがHTTPレスポンスコードの標準リストに適合しなかったことを意味します。
サーバーが原因であるか、PHPアプリケーションやWordPressサイトで使用されているプラグインなど、サーバー上のものが原因である可能性があります。
修正するための不適切なエラーコードのソースが見つからない方は、サポートまでお問い合わせください。
Cloudflareを再度有効にする
エラーが再度発生されるかどうかを確認します。発生する場合は、Cloudflareを無効のままにしてトラブルシューティングを続けます。
520エラーが解決された場合、Cloudflareを再度有効にします。
ステップ1
これを行うには、Cloudflareにログインし、アカウントで雲をグレーにしてCloudflareを無効にした場合、最初にリストから該当のサイトを選択します。
ステップ2
「DNS」タブをクリックし、グレーの雲をクリックしてCloudflareを再度有効にします。
Cloudflareの一時停止後の再起動
ステップ1
Cloudflareを以前に一時停止した場合は、Cloudflareにログインしてダッシュボードのリストで該当のサイトをクリックして再起動します。
ステップ2
次に、「Overview」(概要)タブに移動し、ページの右側のサイドバーの「Advanced Actions」(詳細アクション)が表示されるまでスクロールダウンします。
「Enable Cloudflare on Site」(このサイトでCloudflareを有効にする)をクリックします。
開発モードをオフにする
ステップ1
以前にCloudflareの開発モードを有効にした場合は、ログインして再度無効にします。次に、リストで該当のサイトをクリックします。
ステップ2
「Caching」(キャッシュ)タブに移動します。
ステップ3
「Development Mode」(開発モード)セクションまでスクロールダウンし、「オン」になっているトグルボタンをクリックします。
それでも駄目なら
それでも駄目なら、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またはホスティング会社のサポートまでお問い合わせください。