画像サーバをこしらえたので、お世話になっていたCDNのPhotonを強制的に無効化したお話(๑ơ ₃ ơ)Photon導入の記事はあっても、無効化についてはあまりないようでしたので記事にしました。
CDNって何?
Webサーバー上のコンテンツの中でキャッシュが出来るファイル(画像,CSS等)をCloudFlare上のサーバーにキャッシュする事でWebサーバーのレスポンスを改善する、CDN(コンテンツデリバリネットワーク)サービス。
自身のサーバの代わりに静的コンテンツ(CSS,Javascript,画像等)をCDNに置くことによって、負荷分散が出来ます。GoogleやCloudFlareなどがサービスを提供しています。
メリット
サーバの高速化・軽量化が行える。CDNはハイスペックなサーバーを使っている為。
デメリット
CDNサーバが倒れると配信が出来なくなり共倒れ。その為に自動でフォールバック(自身に代替)する仕組みをスクリプトで用意をする必要があり。
例)CDNからJQueryが読み込みに失敗したら、自サーバから配信
1 |
<script>window.jQuery || document.write('<script src="js/jquery.min.js"><\/script>')</script> |
WordPress JetpackプラグインのPhoton
JetpackにはCDNのPhotonモジュールと連携できる。無料でCDNが利用できるのだから凄いですね。
Photon導入で記事のソースコードが変化する
Photonを有効化するとi0.wp.comなどの外部サーバに自動的に画像がキャッシュされるようになります。サーバーは画像のリクエストを返さないように済むので負荷が抑えられる。注意したいのは間違って投稿した場合に、WPサーバ側で取り消してもPhotonサーバ側にキャッシュされたままになってしまうので気を付けて。
通常の手順
Jetpackの設定からPhotonをクリック。
停止をクリック。以上でPhotonは解除されます。
CDNの利用は任せっきりの運用の場合、CDN側で障害が起きた場合にサービスが提供出来なくなります。滅多にあるわけではないですが、CDNが止まった場合に復旧を待つ以外に手段がなくなる。
そんなわけで、静的ファイル配信サーバーを用意できるならば、自前で用意しちゃうのが一般的です。
賢いCDNの使い方
テレビCMやキャンペーンなどで一時的に大きなアクセスが予想される時に有償のCDNを使うといった方法もあります。
通常の手順ではPhotonが解除できなかったケース
バグ?他の開発会社が作ったWEBサイトを保守した時に、Jetpackの設定画面でPhotonを無効化してもPhotonが無効化出来なかった。
応急処置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
☆/wp-content/plugins/jetpack/class.photon.php //で画像ファイル指定部分を無効化する。 class Jetpack_Photon { /** * Class variables */ // Oh look, a singleton private static $__instance = null; // Allowed extensions must match http://code.trac.wordpress.org/browser/photon/index.php#L31 protected static $extensions = array( //'gif', //'jpg', //'jpeg', //'png' ); |