squidでリバースプロキシ

GWが始まりました、皆様いかがお過ごしでしょうか。

ついに録画デッキのHDD容量が満タンになってしまいました、GWに一気に見ようと思って溜めすぎてしまったようだ。画質を下げたら良いけど、せっかくだしBluerayディスクへダビングして容量を確保!!している最中なのな、今晩からTwentyFourが始まるのでね。そう、ついにファイナルシーズンです。シーズンサヨナラであります。

去年のGWは何をしていたのか思い返すと、ジョンカーターを7人くらいで見に行った記憶しかなかった。懐かしいなあ、あの7人は今頃なにをやってるんだろうな。
だいぶ昔のことのように感じる。
多分みんなそれぞれの星で頑張ってることだろうさ。
なんだか映画の内容とごっちゃになっているが、気にしなければどうということはない。

 

さて

そんな感じでかなり久しぶりに検証シリーズですが、前置きは十分なのでさっそく本題に

yumでsquidをインストールすると

# rpm -q squid
squid-3.1.10-16.el6.i686

Googleで調べるとメインとなっているのが2.6系の様子で、リバースプロキシの設定が出てこず。やっとみつけたところで色々と調べてみるとこいつを付け足してやっと動いた。

http_port  192.168.24.56:80 accel vport=10080
cache_peer 192.168.24.56 parent 10080 0 default

IPアドレスなんかはたけけんのローカル環境です。

Googleで調べてもわかるけど、2系はhttpd_accel_portとかを使うみたいなんだけど、3系ではそれだとエラーで動かないらしく。httpd_portにaccelオプションを使って動かす。

 

acl、http_access、cacheの設定なんかは前と同じで動く。

けどリバースプロキシとして利用する場合は80番を外からつなげるようにしないといけない。プロキシサーバとして使う時とは開ける方向が逆になるからね。

さっきの2行さえクリアすればsquidは立ち上がってくれたけど、2行目の

cache_peer 192.168.24.56 parent 10080 0 default

ですが、これは何行でも書けます。そう聞いてピンと来るかもしれないけど、不可分散もできるみたいなのだ。
たけけんはオプションにdefaultを使ってますが。cache_peerに使えるオプションは

round-robin・weight=n・connect-timeout=nn

などなど。重み付けもできるみたいだね。転送先のウェブサーバーが落ちてた場合はそこにはアクセスさせないということもできるらしい。今更ながらだけど順番的にnginxよりこっちが先だったかもしれないね。まぁいいさ。

結果としては謎がまた深まることになるのだけどApachebenchをやってみた。

# ab -n 3000 -c 100 http://192.168.24.56/
Server Software:        Apache/2.2.15
Server Hostname:        192.168.24.56
Server Port:            80
Requests per second:    1866.63 [#/sec] (mean)

# ab -n 3000 -c 100 http://192.168.24.56:10080/
Server Software:        Apache/2.2.15
Server Hostname:        192.168.24.56
Server Port:            10080
Requests per second:    4771.24 [#/sec] (mean)

こんな感じでApacheに直接やった方がレスポンスが良かった。この結果は今までにないことなので確証が持てない、squidがキャッシュしてる分だけ遅いとかはあくまでイメージで、合ってるかも分からないから何も書けないなあ。

うーん。

とりあえず先に進むか。

一つだけ言えることは、リバースプロキシの設定はLPI202の範囲では出てこないということだ。

Similar Posts:


Leave a Reply

Your email address will not be published. Required fields are marked *