土日でブログを色々いじっていたのですが、その際にcloudflareからこんな522エラー画面が表示されることが多くて困りました。522というHTTPステータスコードですが、500番代のエラーなのでサーバー側のエラーで、Connection Timeout(接続がタイムアウトになった)という意味みたいです。
cloudflare522エラー画面

cloudflareとは

まず、最初に簡単にcloudflareについて書いておきますね。cloudflareとはフリーで使えるCDN(コンテンツ・デリバリー・ネットワーク)です。Webサイトが置いてあるサーバーまでアクセスせずにcloudflareからコンテンツ(画像ファイル、CSSファイル、Javascript)を取得して表示するので、表示速度を速くすることや、サーバーの転送量を減らすのに役立ちます。最近は2ちゃんねるや大手まとめサイトなどでも使っているようです。

ただし、DNSサーバーの設定が必要なので、アメブロやfc2などの無料ブログでは使えないです。独自ドメインを取得してないと使えません。

cloudflareの522エラー

私のブログでは2014/9/6頃からよく522エラーが表示されてconnection timeoutになりました。Google先生で調べたのですが、日本語の情報が少なくて苦労しました。cloudflareの画面にもあるように、cloudflareとブログを置いているWebサーバー間の接続がタイムアウトしています。

なお、当ブログはWordPressで書いていて、サーバーはロリポップ!のチカッパプランで、DNSはお名前ドットコムを使っています。

まず最初に思い当たったのがWordPressのキャッシュ系プラグインと競合している可能性です。当ブログは「DB Cache Reloaded Fix」を使っていますが、DBキャッシュのプラグインだけです。WordPressのwp_config.phpと.htaccessにキャッシュの設定をしていますが、あまり関係無い気がしています。
→追記・・・今は「DB Cache Reloaded Fix」を使うのをやめています。キャッシュ系プラグインとは関係ないと思われます。

この522エラー画面が表示されている間も、FTP(WinSCP)ではアクセスできていたので、ロリポップのハードウェアやネットワークは落ちていないけど、Webサーバー(apache)が落ちていた可能性もあります。もっとお値段が高くて安定しているサーバーだと起こらないのでしょうか?

2014年12月17日にロリポップのWebサーバが数時間落ちていたことがあったのですが、その時もcloudflareの522エラー画面が表示されてました。

対策

キャッシュ系プラグインをいじるのは面倒で、ブログが真っ白になるリスクもあるので、cloudflareのエラー画面に書いてあるように、ちょっと時間(5分ぐらい)を置いてアクセスすることにしました。それでアクセスできたのでしばらく様子見ます。

それにしても自分がブログの編集するときに困る以上に、普通にブログを見に来ている読者の方にも、522エラー画面が表示されてしまうのをどうにかしたいです。ただでさえ当ブログはアクセス少ないのに、誰も見に来てくれなくなってしまいます(泣)

でもロリポップのWebサーバーかcloudflareのどっちが原因なのか、いまいち問題の切り分けができていないんですよね。ロリポップ以外で起こらないのなら、他の高性能なレンタルサーバーにするのがいいのかもしれません。

2015/1/13追記・・・結局、cloudflareを使うのをやめました。速度測定サイト(GTmetrix)のスコアは下がりましたが、体感的な表示速度は変わっていないです。

また、cloudflareをやめてからは自分のブログが見れなくなったことがないので、うちのサーバーのロリポップではなくcloudflare側が原因と思われます。cloudflareを使っても劇的に早くなるというわけではないので、自分のサーバー側の転送量が制限ギリギリでない限りは、サイトが落ちてしまうリスクを考えるとcloudflareを使わない方が良さそうです。

2017/4/23追記・・・cloudflareを使うと転送量を下げることができるということで、アクセス数の多い大規模サイトでも利用されているようです。そのせいかどうかわかりませんが、cloudflareへのアクセスが多くなり、一般のブログやサイトも巻き添えになって522エラーが出るのではないかと推測しています。