squid 3.1 でリバースプロキシ

背後に apache などをおいて、フロントに squid を置くような構成になっているサーバをさわる機会があった。

squid はいわゆるリバースプロキシとして動くようになっていた。対象のバージョンは squid 3.1 だった。

設定としては、http_port に accel を入れて、cache_peer で originserver と書けばリバースプロキシとして動く。

URLごとに振り先を変えたいなんてときは cache_peer_accessacl を指定すればよい。

とっても簡単なんだな。

例えば、port 80 の /docA にアクセスがあったら ローカルの HTTP サーバに振り分け、 port 81 の /docB にアクセスがあったら demo.example.com の HTTP サーバに振り分ける場合。

 

http_port 80 accel
http_port 81 accel
acl http_port80 myport 80
acl http_port81 myport 81
acl docA_url urlpath_regex ^/docA/
acl docB_url urlpath_regex ^/docB/
cache_peer_access docA allow docA_url http_port80
cache_peer_access docA deny all
cache_peer_access docB allow docB_url http_port81
cache_peer_access docB deny all
cache_peer localhost parent 80 0 no-query originserver name=docA
cache_peer demo.example.com parent 80 0 no-query originserver name=docB