3ヶ所以上の振り分け †社内、社外、支社と言う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へ依頼されます。 と言うのが設定ファイルを作るときの考え方です。 この設定で期待通りの動きはしましたが、間違っている部分もあるかもしれないので、それはまた追加修正します。 |