最新設定サンプルCloudFront用CDNext用Incapsula用WordPressサイト全体をCDN化する方法です。Yahoo砲などの瞬間ピークに対しても耐えるサイトになります。単純にWordpressにCDNを適用すると、以下の問題が発生します:サイトをアクセスしているとオリジンサイトに誘導されてしまうWordPressは、生成するリンクに、”WordPressアドレス”を使用したフルパスを利用する記事の投稿がうまくいかない(「メディアを追加」ボタンを押しても反応しない等)キャッシュすべきでないファイルをキャッシュする記事がキャッシュされず、オリジンサーバの負荷が高いままWordPressは、phpファイルにcache-control:no-cacheを付ける今回は、これらを回避する設定について紹介します。no-cacheCDN設定オリジンホスト:192.168.0.10オリジンにアクセスする際のホストヘッダ:www.example.jpオリジンにアクセスする時のポート:80TTL設定:10秒程度TTL時間補足この設定では、記事の変更時におけるCDNのファイルパージは行われませんが、TTLを10秒としたため、少し待てば新しい記事に更新されます。逆に、10秒に1回はオリジンサーバへのキャッシュ確認アクセスが発生してしまいます。国内配信であれば、このアクセスは短時間で終了するため、大きな問題(ディレイ)とはなりません。オリジンサーバの負荷という視点では、ユーザからのリクエスト数が何万、何千万になろうと一つのファイルに対しては10秒に1回しかアクセスが発生せず、大きな負荷低減になります。Apache補足Apacheでhttpヘッダを制御するにはいくつか方法がありますが、簡単なものとしては.htaccessの利用です。no-cacheサイトのSSL化サイトをSSLにする場合、以下のように、WordpressアドレスをhttpsにしCDNからも443ポートでアクセスさせる必要があります。リダイレクトが繰り返し行われました。これは、以下のような無限ループが発生しているためです:ブラウザ→CDN:443でアクセスCDN→オリジン:80でアクセスする。オリジン(wordpress)は443ポートへのリダイレクトを発行ブラウザ:443ポートへのリダイレクトを受信する。