squidのhierarchy_stoplist
squidのconfに書かれている
hierarchy_stoplist cgi-bin ?
の一行ですが、Webでこの語句を検索すると、ここに書かれている文字を含むURLはキャッシュしないとだけ書かれているサイトもあり、
キャッシュしない時はここに書けばいいのか、と私も単純に思ってしまったのですが、
どうやら、外部のURLフィルタリングサービスやウィルスチェックサービスと連携する時はここの記述が非常にまずいことになるようです。
hierarchy_stoplistは
このリストに記述されたワードがURLの中に見つかると、隣接キャッシュではなく直接サーバにリクエストを行います。隣接キャッシュを使いたくないオブジェクトのために使ってください。
このオプションは複数回指定できます。デフォルトは、’cgi-bin’と’?’を含むURLの場合に直接オブジェクトを持ってきます。
ということなので、cache_peerで外部のサービスを親プロキシとして指定している場合に、親プロキシがキャッシュしているかどうかに関わらず、
hierarchy_stoplistに書かれている文字があると「親プロキシを経由しない、つまりURLフィルタリングやウィルスチェックを通らない」ということになってしまうようです。
これは危険。
キャッシュの制御というのはなかなか難しく、ちょくちょくキャッシュを見ているためと思われる不具合が起こります。動的ページが増えている今は、以前のようにシンプルなキャッシュというのは出来なくなっているのかもしれません。プロキシはアクセス制御としての役割の方が大きくなっているようです。
三省堂書店でしか買えない書籍[送料無料]三省堂書店オンデマンド テクノプレス 「squid2プロ… |