522 エラーは、サーバーに接続しようとして時間切れでタイムアウトエラーは発生したことを示すものです。CDNの採用などで遭遇する機会も増えています。エラー原因はサーバー側にあり、クライアント側は自分では対応できず、サーバー側の復旧対応を待つしかありません。
目次
522エラー;Connection timed outはサーバー接続のタイムアウト
Webの閲覧やWebアプリ操作中に522 エラー;Connection timed outというエラーメッセージが表示されてしまうことがあります。これは、アクセスしたいWebサイトを管理しているサーバーでアクセス時のタイムアウトが発生してしまったことによるものです。
具体的にはCloudflareというCDNサービスを使用している場合に、Cloudflareが該当のWebサイトを管理するサーバからタイムアウトを検知していることによります。
以下で詳しく説明します。
「エラー522」はCloudflare経由でのサーバー接続のタイムアウト
WebサイトやWebアプリでは、多数の画像ファイルや動画などを使うのが当たり前になってきており、それらのデータのダウンロードをネットワークに負荷をかけずに高速に行うことが必要となっています。そのため、最近ではCDNが使われるようになっており、Cloudflareはその最大手の無料で使用可能なネットワークです。
Cloudflareでは、クライアントがアクセスするWebサイトに既定の時間でアクセスできなかった場合は、サーバ接続タイムアウトエラー(Connection timed out)として522 エラーをHTTPステータスとして返します。
CDNは効率的かつスピーディーに配信するためのネットワーク
CDNとは、和名でコンテンツ・デリバリー・ネットワークの略、英語でContent Delivery Networkの略で、Webコンテンツを高速にかつネットワークに負荷をかけずに配信するためのサービスです。CDNを実現するには、アクセスしたいWebサイトを管理するオリジンサーバに対応する代理サーバを世界中に配置したネットワークを構成して利用することになります。代理サーバはエッジサーバとしてユーザーの近くで効率的かつレスポンスよく機能します。
Cloudflareの場合は、世界の100か国以上の200以上の都市にデータセンターを配置して、オリジンサーバへの負荷集中を防ぐことができます。
522エラーの発生原因はサーバー側のエラー
522 エラーはCDNの代理サーバとオリジンサーバ間のアクセスに関してタイムアウトが発生していることを知らせるエラーであり、あくまでサーバ処理に関するエラーなのです。WebサイトやWebアプリにアクセスするユーザーやクライアント側システムには関係しておらず、したがって522 エラー発生時は、ユーザーはサーバ側が対処してくれるのを待つしかありません。
以下では、522 エラーが発生する原因を説明します。
サーバーがオフライン
オリジンサーバがメンテナンスなどでオンライン稼働しておらず、オフラインの状態にある場合は、そのサーバにアクセスしても応答が得られず522 エラーのタイムアウトエラーとなります。
ファイアーウォールがアクセスをブロック
オリジンサーバのファイアーウォールが正常に稼働していない場合は、本来は受理されるアクセスがファイアーウォールで拒否されてしまい、522 エラーのタイムアウトエラーとなります。
サーバーの過負荷
オリジンサーバが過負荷の状態に陥ってしまうと、そのサーバへのアクセスに対する応答に時間がかかってしまい、522 エラーのタイムアウトエラーとなります。
DNS設定
DNSの設定に誤りなどがあったり、DNSサーバーが正常に稼働していない場合は、代理サーバからはオリジンサーバの正しいIPアドレスが得られないことになり、そのサーバにアクセスしても応答が得られず522 エラーのタイムアウトエラーとなります。
IPルーティングの間違い
IPルーティングに間違いがある場合は、代理サーバからはオリジンサーバへデータが正しく転送されずデータが行方不明となってしまいます。そのため、オリジンサーバにアクセスしても応答が得られず522 エラーのタイムアウトエラーとなります。
キープアライブモードがオフ
CDNの代理サーバはオリジンサーバに対してキープアライブの伝文を定期的に送信してサーバ間の通信が正常かをチェックしています。オリジンサーバのキープアライブモードがオフになっていると、キープアライブの伝文に対して代理サーバに応答がかえらず、522 エラーのタイムアウトエラーとなります。
ユーザー(クライアント側)から522エラーを解決する方法は無し
522 エラーは上記で説明したように、CDNの代理サーバとオリジンサーバ間の通信処理中に発生するエラーです。このため、WebサイトやWebアプリにアクセスするユーザーやクライアント側システムでは、522 エラーの復旧には関与できません。
したがって、522 エラー発生時は、ユーザー(クライアント側)は、サーバ側が対処してくれるのを待つしかありません。
サイト管理者(サーバー側)から522エラーを解決する方法
以下では、522 エラーが発生したサーバの管理者が行うべき対処法について説明します。
IPフィルタリング設定の確認
CDNの代理サーバからのオリジンサーバへのアクセスが拒否される場合は522 エラーが発生します。そのため、オリジンサーバの管理者は、CDNのすべての代理サーバのIPをブロックしない設定となっているかを確認する必要があります。
具体的には、ファイアウォール設定、iptablesの設定、.htacessファイルの記述にミスがないかなどのチェックが必要です。また、セキュリティソフトでブロックされる場合は、セキュリティソフトのホワイトリストに代理サーバのIPを追加するとよいでしょう。
DNS / IPのリセット
オリジンサーバのIPアドレスが変更となった場合は、新しいIPアドレスをCDN側に手動で通知する必要があります。Cloudflareの場合は、DNS resolutionをオリジンサーバのドメインレジストラーからCloudflareに切り替える必要があり、そのための設定をCloudflareで行う必要があります。
サーバーの負荷容量のアップ
522 エラーが頻発するのは、オリジンサーバの処理能力不足による過負荷が主な原因となっていることが多いのです。この場合は、トラフィック分析などを基に、オリジンサーバの増強を図る必要があります。
キープアライブ設定の確認
522 エラーは発生した場合は、オリジンサーバのキープアライブ設定がオフになっていないかを確認しましょう。オフになっていれば、オンに戻しておきましょう。なお、共有ホスティングで動作しているウェブサイトの場合は、ホスティングプロバイダーに連絡を取って連携することが必要です。
Cloudflareサポートに連絡
CDNとしてCloudflareを使用していて、522 エラーが解決できない場合は、Cloudflareのサポートに連絡を取ってみるのもよいでしょう。Cloudflare側の不具合や設定などについては対応してもらえるでしょう。
CDNの仕組みとメリット
WebサイトやWebアプリでは、動画や画像などを多用するなどますますインターネットの多くの帯域を必要とするようになってきています。このため、クライアントからのアクセスを以下に高速にかつネットワークの負荷を極力減らすかが大きな課題となりつつあります。
CDNは、Webコンテンツをクライアント側により高速に届けることを目的としたサービスです。現在は、CDNの利用が必須となりつつあります。以下では、CDNの仕組みとメリットについて説明します。
CDNの仕組み
以下では、CDNの仕組みを説明します。クラウドが普及するにつれ、クラウド内のサーバへの負荷集中が問題となりました。これを解決する技法としてエッジコンピューティングが提唱され、クラウド内のサーバも、複数のエッジサーバを分散配置する構成が普及しつつあります。
これに合わせて、Webコンテンツの配信にもエッジサーバが利用されています。CDNを理解するには、代理サーバ、オリジンサーバ、DNSのことを知る必要があります。
世界各国に設置された「代理サーバー/キャッシュサーバー」を使用
CDNは複数の代理サーバからなるネットワークを運用しています。数百台もの代理サーバが世界中に配置されてエッジサーバとして機能します。CDNユーザーはWebにアクセスする場合は、ネットワーク上で最も自分に近い代理サーバにアクセスします。
代理サーバは要求されたデータを保持していれば即座にデータをユーザーに戻し、なければ、オリジンサーバと呼ぶ本来ユーザーがアクセスしたいサーバからデータをダウンロードしてきて、結果をユーザーに返します。
上記のように、代理サーバはオリジンサーバのデータを保持するのでキャッシュサーバとも呼ばれます。
DNSの設定で、代理(キャッシュ)サーバーへアクセスを向ける
オリジンサーバと代理サーバは別のIPアドレスを持っていますし、代理サーバ内のデータはオリジンサーバ内とは別のドメインに格納されています。しかし、DNSを利用することで、ユーザーが指示したオリジンサーバのURLのままで、代理サーバのデータを配信出来てしまうのです。
CDNを使うメリット
以下に、CDNを利用するメリットを説明します。
サーバーやネットワークの負荷を軽減できる
CDNでは、代理サーバ(キャッシュサーバ)がユーザーが要求するデータを保持していれば、オリジンサーバにアクセスすることなくデータをユーザーに戻します。一般的に代理サーバはユーザーに近いところに配置されているので、ネットワーク負荷の軽減に有効です。また、代理サーバにとっても、アクセスの集中を防ぐことができ、過負荷状態に陥るリスクを減らせます。
サーバーのレスポンスを改善できる可能性がある
CDNではCDNネットワーク内の代理サーバにアクセスが分散されます。したがって、オリジンサーバも、各代理サーバにとってもアクセスが分散されるため、処理負荷も軽減可能で、サーバのレスポンス向上にも寄与可能です。
まとめ
CDNが普及するにつれて、ユーザーも522 エラーを目にする機会が増えています。522 エラーは、CDNにおいてオリジンサーバと代理サーバ間のアクセスタイムアウトを示すエラーです。
本記事では、522 エラーの概要、522 エラーが発生する原因と解決法を説明してきました。
クライアントは522 エラーに対処することはできず、サーバ管理者が復旧するのを待つしかありません。サーバー管理者はCDNを利用している場合は、本記事を参考に迅速に対応してみてください。