httpコンテンツcacheする場合、だいたいvarnishとかnginx、apacheでやるし、
最近だとCDNもあったりするので、機能としてあるのは知ってたけど使わなかった機能。
とはいえ突発的なアクセスがきて、急に構成変更ができない場合にさくっとできるように調べて見た。
とりあえずまとめ
- 要http profile
- cacheはwebacceleration profile毎に個別
- hostヘッダによっても異なる
f5 document
Local Traffic - Virtual Servers - Profiles - Services - Web Acceleration
defaultのprofileはいぢりだくないので、webaccelerationをparent profile として新規にprofile 作成
webacceleration-test
テスト
2 vip (4 virtualserver)に同一のprofileを適用してテスト
アクセスするとランダムな値を返すアプリを用意
1. 192.168.0.11:80
2. 192.168.0.11:443
3. 192.168.0.12:80
4. 192.168.0.12:443
1と2で同じキャッシュ、3と4で同じキャッシュが返ってきた。
virtualhost
hostsに
192.168.0.11 a.example.com b.example.com
とかいて
にアクセスすると異なるキャッシュが返ってきた。
さらにこのキャッシュが残っている状態で
192.168.0.12 a.example.com b.example.com
に書き換えて192.168.0.12のサーバにアクセスすると
にアクセスすると、↑と同じキャッシュが返ってきた。
(もしくは curl 192.168.0.12 -H 'host: a.example.com')
というわけで、同一webacceleration profileで
hostヘッダをkeyとしてキャッシュを使い分けてるみたい。
まあ、普通にインターネット上に公開している場合、異なるサーバ間で
hostヘッダが同じになることはないので気にしなくてよいかもしれないけど
hostヘッダ偽装により想定外のコンテンツが返る可能性があるので、
virtualserverごとにprofileはわけたほうが無難