[[Squid]]

* 3ヶ所以上の振り分け [#a991951c]

社内、社外、支社と言う3つのネットワークがあって、社内の利用者は、社内にあるWebサーバには直接アクセス可能な位置にあり、社外サイトを見るときはProxy2、支社サイトを見るときはProxy3を通る必要があるとします。


この状況では、ブラウザの設定は、簡単にはいきません。これらすべてのWebサーバに対してアクセスするためには、Proxy2を主たるプロキシに指定して、社内サイトをプロキシを使用しないホストに登録しますが、そうなると支社サイトを見ることができません。

で、Proxy1を設置して、利用者はProxy1を指定するだけ(対象外ホストの登録をしない)で見えるようにしたい、と。

要するに、親となるプロキシサーバが複数台あって、それらに対して振り分けをしたく、かつ、プロキシから直接アクセスするべきサーバがある場合の設定になります。

Proxy2/Proxy3の設定は特に問題ないでしょう。通常の単体プロキシと同じなので。

ただし、Proxy2/Proxy3は新設のProxy1からのアクセスを受け付けられるようにしておく必要があります。

この場合、Proxy1のsquid.confは次のようになります(必要部分のみ抜粋)。

 1  : http_port 8080
 2  : cache_peer 192.168.1.50 parent  8080  0  no-query
 3  : cache_peer 172.20.1.20  parent  8080  0  no-query
 4  : #
 5  : # ACL
 6  : #
 7  : acl all         src       0.0.0.0/0.0.0.0
 8  : acl localhost   src       127.0.0.1/255.255.255.255
 9  : acl com-site    dstdomain .example.com
 10 : acl intra       dstdomain .example.co.jp
 11 : #
 12 : # Rules
 13 : #
 14 : cache_peer_access 192.168.1.50 allow com-site
 15 : cache_peer_access 192.168.1.50 deny  all
 16 : #
 17 : always_direct allow intra
 18 : never_direct  allow all
 19 : http_access   allow localhost
 20 : http_access   allow local
 21 : http_access   deny  all

2, 3行目で親プロキシを指定しますが、「社外」と「支社サイト」を振り分けるわけです。で、この場合、「支社サイト」の方がより特殊性がありますので、最初に記述します。残りを次の行のProxy2が受け持つ、と。

これについては、さらに14,15行目で「どのaclについてProxy3を使用するか」を記述することで完成です。

で、今度は親プロキシ(Proxy2/Proxy3)を使用する場合としない場合について、17, 18行目で設定してます。

 17 : always_direct allow intra

で、社内ネットは常にProxy1が自分でアクセスして取りに行きます。

 18 : never_direct allow all

では、上記(17行目)でマッチしなかったもの、つまり「社内サイトではないもの」は親プロキシを経由するようにします。 しかし、親プロキシは2台あるので、どっちが使われるのかというと、Proxy3は14,15行目で支社サイトに使用するように定義されてるので、残りは社外サイトとしてProxy2へ依頼されます。


と言うのが設定ファイルを作るときの考え方です。
この設定で期待通りの動きはしましたが、間違っている部分もあるかもしれないので、それはまた追加修正します。



トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS