こんにちわ。管理人のはちく(@hachiku_89)です。
福岡グルメを中心として扱う「破竹の勢い」なのですが、CDN(コンテンツ・デリバリー・ネットワーク)である「Cloudflare(クラウドフレア)」を導入し、表示速度の高速化に挑戦した一部始終をオレ的メモとして投稿しておきたいと思います。
(追記)
投稿後、wordpressのCloudflareプラグインを入れると本問題が解消するという情報がありました。
実験的に「破竹の勢い」はCloudflareを有効にして運用してみます。
Cloudflareとは
Cloudflareは、CDNサービスを提供してる会社です。
基本機能を「無料で」使えるというのが、Cloudflareの一番の売りですね。
他にも、同等のサービスを提供してる会社はあります。
(例:Amazon Cloud Front , Google Cloud Platform(GCP) , Akamai ,etc )
日本向けの大手ウェブサイトでもCDNを導入してることも多く、実際に見てるのはCDN上のキャッシュだったりすることもあり知らない間にお世話になってるはずです。
(そういえば、あの漫画村もCloudflareを利用してたので話題になりましたね)
CDNとは、「ウェブサイトのコンテンツをキャッシュして、高速に配信する」サービスです。
この機能により、突発的にウェブサイトへ大量アクセスが発生した場合でも、自サーバーへのアクセスが分散されるためサーバーダウンを防ぐことが出来るのです。
同じ原理でDDOS攻撃に対しても、優れた抵抗性を有するようになります。
わたしとしては、炎上の事前予防としてでは無く、
サイトの表示を速くしてみたい
という技術的興味から取り入れてみることにしました。
Cloudflareを導入したらどうなった?
ここでは、詳しい導入方法を記載はいたしません。
先人たちが、優れた記事を残してくれてますのでそちらを参考にしてください。
ちなみに私が導入時に参考にしたHPを置いておきますね。
■無料CDNサービスCloudflareの登録方法。無料で転送量の負荷分散。(寝ログ)
https://nelog.jp/cloudflare-registration
■WordPress+CloudFlareに3つのルールで劇速に(CloudFlareプラグインの使い方)[追記あり] (プラスα空間)
https://oichinote.com/plus/2016/10/how-to-setup-cloudflare-for-wordpress.html
特に、プラスα空間さんの「Page Rulesの設定」は貴重な情報なので、必見です。
どのコンテンツをCloudflareにキャッシュさせるか、どれを自サイトへ誘導するのかの振り分けルールの設定方法が書いてあります。
私の環境では、MarsEditをつかってブログを更新してるのですが、Cloudflareを導入したところ、うまくアップロードができなくなりました。
MarsEditのエラーメッセージからは「添付ファイルが大きいので、タイムアップになりました」という表示。
私のサイトは、写真を多く使ってますので、それが負担になったんだと思います。
解決法としては、Cloudflareを一時停止することでアップロードができるようになりましたので、良ければ参考にしてください。
結局、使い続けるのは辞めた。
ここからが、メインコンテンツです。
いろいろ苦労しながらも、「破竹の勢い」をCloudflareを使って配信することが出来るようになるのですが、問題がやっぱり起きてしまいます。
gtmetrix.com の成績が向上してない
ページの表示速度を計測する「gtmetrix.com」 の成績をベンチマークとして使ってみました。
そもそも表示速度を上げる為に導入した訳ですが、前後で取ったデータがほとんど変わりませんでした。
DNSの変更が浸透した時間をしっかり置いて何度か計測し直したのですが、それでも変わりません。
体感速度では上がってたし、Cloudflareのキャッシュを使って配信されてることも分かったので、しっかり動作してたと思います。
そういうこともあり、表示速度の結果については最終的にはあまり重視しないことにしました。
Google AdSenseが半減した
これが、利用継続を断念した大きな理由です。
AdSenseについては、事前に調べ「変わらない」という情報が多くあったので大丈夫だろうと思ってました。
しかし、2日間ほどAdSenseの様子見をしたのですが、これまでと同じという結論にはなりませんでした。
収益が半減してるのです。
(規約上、具体的な金額を記載は出来ず申し訳ございません。 )
DNSの設定を変えただけなので、原理的に検索順位が落ちる訳はありません。
PVは、ほぼ一緒ぐらいでした。
当初、収益が落ちる理由が、よくわかりませんでした…。
答えは、ヘルプページに!
いろいろ理由を調べたところ、Cloudflareのヘルプページにそれらしい解説を見つけました。
Does Cloudflare impact Google AdSense?
(CloudflareはGoogle AdSenseに影響を与えますか?)
基本的なCloudflare設定は、Google AdSenseにはまったく影響しません。
(中略)
**注意:**
mod_cloudflareの インストールを強くお勧めします。元の訪問者のIPがサーバーのログに返されます。
「元の訪問者のIPがサーバーのログに返されます。」という表示。
なんか、クサイ。
気になります・・・。
「mod_cloudflare」について、調べるともっと詳しいヘルプページを見つけました。
Why should I install mod_cloudflare?
(なぜmod_cloudflareをインストールする必要がありますか?)
元の訪問者の受信IPアドレスに依存する他のプログラムがある場合には、問題が発生します。
こちらの図を見て、完璧に理解できました。
Cloudflareを通すと、訪問者のIPアドレスがキチンと届かない模様です。
元のプログラムに訪問者のIPアドレスを届けるためには、 mod_cloudflareを入れる必要があります。
Google AdSenseに正確なIPアドレスが届いてないとしたら、訪問者に対して適切な広告が表示されてないことが考えられますね。
これが収益が落ちた理由っぽいです。
管理人はちく(@hachiku_89)のまとめ
mod_cloudflareを入れたら良いじゃん?
と思いましたが、これがどうも難しい気がします。
How do I restore original visitor IP with Nginx?
(Nginxでオリジナルの訪問者IPを復元するにはどうすればよいですか?)
上記のページに書いてますが、Webサーバーの設定を変更が必要です。
このサイトはエックスサーバーを使っており、WebサーバーはNginx(エンジンエックス)となります。
所詮、レンタルサーバーなので、ヘルプページに書いてる様な深いところはイジれなさそう。
ようやく、原因らしき部分も分かったのですが限界も判明。
Cloudflareの導入を断念することにしました。
もう少し時間が経てば、mod_cloudflareの導入解説を書いた記事なども出てくると思います。
先人たちの知恵を待ちたいと思います。
以上、Google AdSenseの収益が半減してCloudflareの導入を断念した話でした。