動的にPoundの動作を変更する

Poundは再起動なしに設定の再読み込みできないからApacheの方がイイ!。。。と思ってたけれど、サービスのenable/disableくらいは再起動なしにできることに気がついた。

poundctl


Usage: ./poundctl -c /control/socket cmd
where cmd is one of:
-L n - enable listener n
-l n - disable listener n
-S n m - enable service m in service n (use -1 for global services)
-s n m - disable service m in service n (use -1 for global services)
-B n m r - enable back-end r in service m in listener n
-b n m r - disable back-end r in service m in listener n
-N n m k r - add a session with key k and back-end r in service m in listener n
-n n m k - remove a session with key k r in service m in listener n

entering the command without arguments lists the current configuration.

pound.cfg


Daemon 0
Control "/var/tmp/pound.sock"

ListenHTTP
# -L/l 0
Address 192.168.11.5
Port 10080

Service
# -S/s 0 0
BackEnd
# -B/b 0 0 0
Address 192.168.11.5
Port 80
End
End
Service
# -S/s 0 1
BackEnd
# -B/b 0 1 0
Address 192.168.11.5
Port 80
End
End
End

pound.cfgのControlディレクティブでUNIXドメインソケットのパスを指定する。ダブルクォートに囲まれていないと、ディレクティブと認識されない。

それで↓のような感じで、サービスを有効にしたり無効にしたり。


~$ poundctl.exe -c /var/tmp/pound.sock -s 0 0

ビミョーに使いづらいような。