土日でブログを色々いじっていたのですが、その際に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を使わない方が良さそうです。