WordPressのCDN化:レベル3
最新情報はWordCampで発表しました:発表資料
- 最新設定サンプル
レベル3でも、前回と同様にWordPressサイト全体をCDN化させます。違いは、記事の投稿および管理をオリジンサイトで行う点です。この方法のメリットは、セキュリティの向上です。
前提
今回の説明では、公開用FQDNおよびオリジンを以下のものとします:
- 公開用
- FQDN:www.example.jp
- オリジンサーバ
- FQDN:www-orig.example.jp
- IPアドレス:192.168.0.10
基本設定
- WordPress設定
- WordPress アドレス (URL): www-orig.example.jp
- Apache設定
- /var/www/html/wordpressディレクトリ
- 以下のヘッダをunsetする(レベル2と同様)
- Pragma
- Cache-Control
- Expires
- 補足
- wp-adminディレクトリのヘッダ設定は不要
- 以下のヘッダをunsetする(レベル2と同様)
- OutputFilter等で、オリジンサイトのURLを公開サイトに変換する
- www-orig.example.jp -> www.example.jp
- ただし、wp-admin以下については変換しない
- /var/www/html/wordpressディレクトリ
- CDN設定
- オリジンホスト:192.168.0.10 or www-orig.example.jp
- どちらでも可
- オリジンにアクセスする際のホストヘッダ: www-orig.example.jp
- TTL設定:10秒程度
- オリジンホスト:192.168.0.10 or www-orig.example.jp
OutputFilter補足
Apacheで出力変換を行うにはOutputFilterを使用します:
<loocation “/”>
AddOutputFilter SUBSTITUTE .php .xml
SUBSTITUTE “s|http%3A%2F%2Fwww-orig.example.jp|http%3A%2F%2Fwww.example.jp|n”
SUBSTITUTE “s|http://www-orig.example.jp|http://www.example.jp|n”
SUBSTITUTE “s|http:\/\/www-orig.example.jp|http:\/\/www.example.jp|n”
</Location>
<Location “/blog/wp-admin/”>
RemoveOutputFilter SUBSTITUTE .php
</Location>
セキュリティ強化
- オリジンサイトのFQDN
- www-origではなくwww-乱数(例:www-5e5e45)等にします。これにより、オリジンサイトを狙った攻撃が少なくなります。
- wp-adminのアクセス権限
- CDNでwp-adminへのアクセスを拒否します(オリジンサイトへの直接アクセスのみ許します)。