squidのhierarchy_stoplist

【PR】
※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。

squidのconfに書かれている
hierarchy_stoplist cgi-bin ?
の一行ですが、Webでこの語句を検索すると、ここに書かれている文字を含むURLはキャッシュしないとだけ書かれているサイトもあり、
キャッシュしない時はここに書けばいいのか、と私も単純に思ってしまったのですが、
どうやら、外部のURLフィルタリングサービスやウィルスチェックサービスと連携する時はここの記述が非常にまずいことになるようです。
hierarchy_stoplistは

このリストに記述されたワードがURLの中に見つかると、隣接キャッシュではなく直接サーバにリクエストを行います。隣接キャッシュを使いたくないオブジェクトのために使ってください。
このオプションは複数回指定できます。デフォルトは、’cgi-bin’と’?’を含むURLの場合に直接オブジェクトを持ってきます。

ということなので、cache_peerで外部のサービスを親プロキシとして指定している場合に、親プロキシがキャッシュしているかどうかに関わらず、
hierarchy_stoplistに書かれている文字があると「親プロキシを経由しない、つまりURLフィルタリングやウィルスチェックを通らない」ということになってしまうようです。
これは危険。
キャッシュの制御というのはなかなか難しく、ちょくちょくキャッシュを見ているためと思われる不具合が起こります。動的ページが増えている今は、以前のようにシンプルなキャッシュというのは出来なくなっているのかもしれません。プロキシはアクセス制御としての役割の方が大きくなっているようです。

Tips

Posted by admin