%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%82%92%E8%BB%A2%E9%80%81%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%ABsquid%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B.png)
私は Proxmox に 5 つの LXC コンテナをインストールしました。各コンテナには、登録されたドメインを指す Apache2 Web サーバーが内部で稼働しています。
つまり、
コンテナ1は例1.comローカルIPアドレスは192.168.2.225
コンテナ2は例2.comローカルIPアドレスは192.168.2.230
コンテナ3は例3.comローカルIPアドレスは192.168.2.235
等々。
5つの異なるドメインのリクエストを対応するコンテナに転送したいと思います。すべてのコンテナは静的IPを持ち、vmbr0で物理NIC(enp3s0)にブリッジされています。
そこで別のコンテナで実行して実現しようとしました。イカプロキシローカルIPアドレスは192.168.2.253およびポート3128これは Squid のデフォルトのリスニング ポートです。
まず、Proxmox ホストに次のルールで iptables を設定しました。
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 22 -j DNAT --to 192.168.2.253:3128
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 192.168.2.253:3128
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 443 -j DNAT --to 192.168.2.253:3128
iptables --t nat -A POSTROUTING --out-interface vmbr0 -j MASQUERADE
その後、Squid を設定してみました:
http_port 3128
http_access allow all
http_port 3128 intercept
visible_hostname squid.proxy
acl 100 dstdomain .example1.com
acl 101 dstdomain .example2.com
acl 102 dstdomain .example3.com
cache_peer 192.168.2.225 parent 80 0 no-query
cache_peer 192.168.2.230 parent 80 0 no-query
cache_peer 192.168.2.235 parent 80 0 no-query
example1.com を閲覧すると、Squid から次のメッセージが通知されます:
The requested URL could not be retrieved
私の質問は、各ドメインを対応するコンテナーに正常に転送するにはどうすればよいかということです。