ご注意下さい
この記事は3年以上前に書かれた記事ですので、内容が古い可能性があります。
知らなかったのですが静的コンテンツと動的コンテンツのサーバを分けるのはこの世界では常識のようでその理由はいろいろとあるようです。
今回はその理由の1つである、本来cookieが不要である静的コンテンツに対してもcookieを送信してしまっている無駄を削減することでデータ転送量を減らしてみることにします。
流れとしては、
①静的コンテンツ用ドメインの作成
②apacheのバーチャルドメイン化
③wordpress側の設定変更
④wordpress側のコンテンツの移行(書き換え)
を順に実施していきます。
この記事のもくじ
DNSへドメインの追加
静的コンテンツ用にサブドメインを追加します。
/var/named/chroot/var/named/配下のzoneファイルにstaticというサブドメインを切ります。
service named restartかrndc reloadで設定ファイルを読み直しましょう。serial値の変更をしないときちんと反映されませんので注意してください。
www IN A 218.45.184.224 blog IN A 218.45.184.224 static IN A 218.45.184.224
CNAMEでstaticを指定しても良いのですが、CNAMEはいろいろと制限が多いのでAレコードで指定しちゃっています。このドメインでNSレコードやMXレコードを作るわけではないので別にCNAMEでもいいのですが…。
apacheのバーチャルドメイン化
apacheの設定変更でバーチャルドメイン化して複数ドメインを同一サーバで運用します。今回は
blog.kamata-net.com:動的コンテンツ用
static.kamata-net.com:静的コンテンツ用
となります。
/etc/httpd/conf/httpd.confの設定変更を行います。
~ NameVirtualHost 192.168.0.xxx:80 ~ <VirtualHost 192.168.0.xxx> KeepAlive Off ServerAdmin webmaster@kamata-net.com DocumentRoot /home/httpd/html/wordpress/ ServerName blog.kamata-net.com ErrorLog logs/kamata-net.com-error_log TransferLog logs/kamata-net.com-access_log CustomLog logs/kamata-net.com-access_log combined CustomLog logs/deflate_log deflate </VirtualHost> <VirtualHost 192.168.0.xxx> ServerAdmin webmaster@kamata-net.com DocumentRoot /home/httpd/html/wordpress/ ServerName static.kamata-net.com ErrorLog logs/kamata-net.com-error_log TransferLog logs/kamata-net.com-access_log CustomLog logs/kamata-net.com-access_log combined CustomLog logs/deflate_log deflate </VirtualHost>
ここでblog.kamata-net.comは動的コンテンツサーバ用の為KeepAlive設定をOFFにしています。
wordpress側の設定変更
wp-config.phpに以下の記述を追記します。
define('WP_CONTENT_URL','http://static.kamata-net.com/wp-content'); define('COOKIE_DOMAIN', 'blog.kamata-net.com');
WP_CONTENT_URLをstatic.kamata-net.comに変更することで、画像のURLが
https://blog.kamata-net.com/wp-content/archives/2014/02/aaa.jpg →
のように変更されます。
合わせてwordpressの「設定」→「メディア」も修正しておきます。
ファイルへの完全なURLパスのところにhttp://static.kamata-net.com/archivesと指定します(効いているのか微妙)。
COOKIE_DOMAINではCookieを使うドメインの指定です。blog.kamata-net.comではCookieを使い、static.kamata-net.comではCookieは使わない、という指示になります。
(参考)
Cookie ドメインの設定
一般的でないドメイン設定をしている場合、Cookie 内で WordPress の使うドメインを指定することもできます。例えば静的コンテンツを提供するためのサブドメインを設定している場合などです。WordPress Cookie がサブドメイン内の静的コンテンツへのリクエストの度に送信されるのを防ぐには、Cookie ドメインを非静的ドメインのみに指定します。
wp-config.php の編集 - WordPress Codex 日本語版
wordpress側のコンテンツの移行(書き換え)
ここから先はオプションです。以前投稿した記事では画像のパスがまだblog.kamata-net.com/~になっているはずですが、ここを書き換える必要があります。
まずはWP-DBManagerをインストールしてDBのバックアップを取ってから作業をすることをお勧めします。
Search Regexプラグインをインストールして置換をしていきます。
Regexのところにチェックを入れて正規表現で書いていきます。
Search pattern:/src="https:\/\/blog.kamata-net.com\/wp-content\/archives\/(.*?).(jpg|jpeg|png|gif|tif|wmv)/
Replace pattern:src="https://static.kamata-net.com/archives/$1.$2
上記のようにして画像や動画などの静的コンテンツへのパスを書き換えます。
必ず「Replace」ボタンで結果を確認してください。「Replace&Save」ボタンを押してしまうと元に戻りません。
本当は/static.kamata-net.com\/wp-content\/archives\/(.*?).!(html)/と表現できれば楽だったのですがなぜか効きませんでした(間違ってるかしら…?)
なぜこのようなことをする必要があるかというと、記事中で他の自分の記事に対してリンクを張っている場合も
蒲田ネット
記事はここまで。