poundでリバースプロキシ

なかなか毎日更新って難しいんですね。

はてなのデザイン変えた。
なかなか気に入っている。
今度自分でテンプレート作ってみようかな。

さてさて、本題。

今、大学でそれなりに大きいシステム(自分なりに)を構築してるですが、WEBサーバを複数代持った時(例えば開発用、本番用)にサブドメインによる振り分けと負荷分散をリバースプロキシで実現できるのを知ったので導入です。

あれ…?

yum install -y pound

何にもインストールしてくれません。
そうです。初期のyumの状態ではインストール出来ないんです。
設定方法はこのサイトをご覧ください。

蝸牛の宿(別館)
http://blog.denden-cafe.com/blog/2007/07/pound_0453.html

add

useradd pound
groupadd pound

設定ファイルの創り方

yumでインストールした場合pound.cfgは自動で作成されないようです。
自分で作りましょう。

vim /etc/pound.cfg

pound.cfgの内容例

解説はこのサイトが分かりやすかったです。

User "pound"
Group "pound"
LogLevel 3
Alive 60 #バックエンドサーバーにハートビートを送る間隔(秒)です。デフォは30秒。
Daemon 1 # 1でdeamonとしてバックグラウンドで動いてくれます。 0でフォアグラウンドで実行出来るのでdeamontoolを使用するときはこっちを指定

ListenHTTP
Address 10.0.0.11 #poundサーバー自身のIP
Port 80
End

Service
HeadRequire "Host:.*test.hoge.dyndns.org.*"
BackEnd
Address 10.0.0.21 #振り分け先IP
Port 80
Priority 1
End
End

Service
HeadRequire "Host:.*public.hoge.dyndns.org.*"
BackEnd
Address 10.0.0.31
Port 80
Priority 2 #優先度です。これが高いと振り分けられる割合が高くなります。
End
BackEnd
Address 10.0.0.32
Port 80
Priority 1
End
End

起動スクリプトの作成

無いので自分で作りましょう

vim /etc/init.d/pound

記述例

#!/bin/bash

start() {
echo -n "Starting pound:"
/usr/sbin/pound
return 0
}

stop() {
#ストップの処理を記述するんだけど、やり方が分からない。
}

case "$1" in
start)
start
;;
esac

実行権限を持たせる。

chmod 700 /etc/init.d/pound

こんな感じで動くと思います。
ただ、終了コマンドが無いのでとりあえずkill プロセス番号とかで終了してください。(見つけて日記で書きます!