pound

最終更新日時:2009-07-06 00:00:00
その他UNIX系

poundとは


poundはロードバランサー、リバースプロキシの機能を持つアプリケーションです。
もう少し詳しく書くと以下のような特色を持っています。

・リバースプロキシ先を複数記述することによりロードバランシング設定が可能
・それぞれにPriority値を設定することにより、振り分け率をstaticに設定可能
・リバースプロキシ先の生死を定期的に確認し、その結果振り分けの有無を自動で切り替え
・httpsプロトコルに対応しているので、SSL wrapperとして使用可能
・IP,Cookie,query_string,Basic認証、リクエストヘッダによるセッション維持に対応
・URLパターンによる振り分け設定が可能
・設置が非常に簡単

ただし、pound自体の冗長化機能は持っていないので注意です。
従って、いわゆる商用でのロードバランサーの機能としては不十分なのですが、個人で負荷分散やSSL Wrapperとして使う分には十分すぎる機能を持っていると思います。

インストール


Pound-2.4.5.tgz の例です。

poundの公式サイトからアーカイブを取得して展開します。

 % gzip -dc Pound-2.4.5.tgz  | tar xvf -
 % cd Pound-2.4.5


あとはお決まりの手順です。

 % ./configure
 % make
 % su
 # make install


設定


デフォルトでは/usr/local/etc/pound.cfgを設定ファイルとして読み込むので、/usr/local/etc/pound.cfgを作成します。
アーカイブ中にも特に雛形等は無いようなので一から作成するしかなさそうです。

主な全体的な設定:

項目デフォルト概要
User実行ユーザー。ダブルクォーテーションで括らないとエラーとなるので注意
Group実行グループ。ダブルクォーテーションで括らないとエラーとなるので注意
LogLevel1ログのレベル
Alive30バッグエンドのサーバにハートビートを送る間隔(秒)
Daemon1デーモンとして実行するか否か。daemontoolsで管理する時とかに0に設定すべしとドキュメントに記述されているが、0に設定すると確かにforegroundで実行されるのだが、poundが子プロセスをforkしているように見え、daemontoolsがpidを取得できず、管理できていないように見える。
LogFacilitydaemonsyslogのLogFacility値。-を設定するとstdout/stderrとなる。


以下、簡単な設定例です。

 User    "pound"
 Group   "pound"
 LogLevel        2
 Alive           50
 Daemon          0
 LogFacility     -
 
 ListenHTTP
        Address xxx.xxx.xxx.xxx
        Port    80
 End
 Service
        BackEnd
                Address 192.168.0.10
                Port    80
                Priority 6
        End
 End
 Service
        BackEnd
                Address 192.168.0.11
                Port    80
                Priority 4
        End
 End
 
 ListenHTTPS
        Address xxx.xxx.xxx.xxx
        Port    443
        Cert    "/path/to/xxx.pem"
 End
 Service
        BackEnd
                Address 192.168.0.10
                Port    443
                Priority 6
        End
 End
 Service
        BackEnd
                Address 192.168.0.11
                Port    443
                Priority 4
        End
 End


証明書について


上記の例のように、poundでhttps参照を受ける際には、CertでSSL関連ファイルを指定します。
このファイルの中身は、証明書、秘密鍵の順でマージしたファイルになります。
また、中間証明書が必要な認証局の場合には、証明書、中間証明書、秘密鍵の順でマージしたファイルとなります。
マージする順番が異なると動作しないので注意が必要です。

起動


以下のコマンドで実行します。

 # /usr/local/sbin/pound


-c を指定すると、設定ファイルのシンタックスチェックが可能です。
-f で設定ファイルが指定可能です。


お問い合わせは 掲示板 にて。