2011年7月19日火曜日

VarnishからオリジンサーバにHostヘッダを変更してアクセス

スズキです。

久しぶりのVarnishネタです。

前回は下記のように、リダイレクト専用のWebサーバの設定をしました。
Varnishでリダイレクト専用Webサーバの構築

今回は単純なキャッシュサーバですが、オリジンサーバへのアクセス時に、
ユーザーがリクエストしたときのHostヘッダではなく、
任意のHostヘッダに変更してアクセスする設定です。

ユーザーがリクエストしたときのHostヘッダのままで、
オリジンサーバ(origin.suz-lab.com)にアクセスする場合は、
単に"/etc/varnish/default.vcl"を下記のようにするだけでOKです。

backend default {
    .host = "origin.suz-lab.com";
    .port = "80";
}

しかし、バーチャルホストのからみなどで、Hostヘッダを変更してアクセスする場合は、
下記のように"vcl_recv"の"req.http.host"に変更したいホスト名を設定します。

backend default {
    .host = "origin.suz-lab.com";
    .port = "80";
}
sub vcl_recv {
    set req.http.host = "origin.suz-lab.com";
    return (lookup);
}

これで、オリジンサーバはバーチャルホスト(origin.suz-lab.com)の
コンテンツを返してくれるようになります。

今月も早いなー...、多分、AWSのアップデートが多すぎるのが原因だけど...
--------
http://www.suz-lab.com

0 コメント: