Squid - arosh/arosh.github.com GitHub Wiki
never_direct と always_direct の意味
それぞれに allow と deny が書けるので非常に混乱しやすい。これらはもともとはキャッシュサーバーをクラスタリングするための設定であるということを念頭に置くと気持ちが分かってくる。
never_direct allow !Foo
と書くと !Foo については直接アクセスしない(neighbor に転送する)と言っているが、Foo については何も言っていない。always_direct を書いていなければ Foo は neighbor に転送されるかもしれないし転送されないかもしれない- always_direct についても同様で
always_direct allow !Bar
と書くと !Bar は直接アクセスすると言っているが、Bar は neighbor に転送されるかもしれないし転送されないかもしれない - always_direct が never_direct よりも先に評価される。それぞれのディレクティブの中では上に書かれたルールが優先される(http_access のような他の設定と同様)
- allow という語彙が紛らわしいが、これは http_access のような他の設定と合わせるために使われているだけで、yes くらいの意味である。always_direct deny は「君のアクセスに対して always_direct にマッチするルールは無いんだ。いいね?」くらいの意味で、そこにマッチした時点で always_direct の評価を打ち切り never_direct の評価に遷移する