Pound 1.10 へバージョンアップする場合はご注意を!

お仕事で、Pound 1.x 系を使ってます。最近、Pound 1.93 から Pound 1.10 へアップグレードしたらハマりました・・・orz
よく、ChangeLog をよんどけっ!って言われればそれまでですが、同じくハマる人って結構いると推測されるので、情報共有ってことで記事にしておきます。

ところで Pound って、変更点がサイトにも情報が記載されてないし、ソースに ChangeLog もないし、README にも書いてないし、*.c のプログラムのヘッダ部分にしか変更点が記載されてないんだよねぇ〜イクナイ!


- スポンサーリンク -

まずは、Pouns 1.10 で変更になった点ですが(config.c とか見てみる)は、

* Revision 1.10 2006/02/01 11:19:54 roseg
* Enhancements:
* added NoDaemon configuration directive (replaces compile-time switch)
* added LogFacility configuration directive (replaces compile-time switch)
* added user name logging
*
* Bug fixes:
* fixed problem with the poll() code
* fixed problem with empty list in gethostbyname()
* added call to setsid() if daemon
* conflicting headers are removed (Content-length - Transfer-encoding)
*
* Last release in the 1.x series.

ここで一番重要なのは、Pound のログをドコに出力するかを指定する方法が変わったって事。

通常、Pound のログを /var/log/message に出力するなんて事は皆さんしていないと思います。おそらく、configure の時点で、

./configure --with-log=LOG_LOCAL1

のように、--with-log オプションを指定して、ユーザローカルな使用のためにリザーブされている LogFacility を使っていると思います。で、更に下記のように、/etc/syslog.conf なんかで、Pound はエラーしか出力しないような設定をしていると思います。

local1.err  /var/log/pound

ところで、Pound 1.10 では、configure 時点で指定していた --with-log オプションが廃止になりました。知らずに今までのように、--with-log オプションを指定してログ出力先を指定したつもりになっていても、オプションは無視され、var/log/message に出力されてしまいます。/var/log/message のログレベルは全て出力なので、アクセスログとかの出力で iowait がものすごいことになってしまい、っちょっとしたアクセスであっという間に web のアクセスが滞ってしまいます。

Pound 1.10 系からは、2.x 系と同じく、pound.cfg にログの出力を設定するようになりました。

LogFacility  local1

のように指定することで、コンパイルオプション時に指定していた内容と同じ事を設定できます。たしかに、この方が便利ですが、とっても重要な変更なので、もう少しわかりやすく情報を掲載して欲しかったと思います。

Pound 1.10 を導入される方は、LogFacility ってオプションを pound.cfg にいれる必要があるって覚えておく方が良いと思います。

※それにしても、Pound のログ出力は Apache のログ出力に比べて遙かに iowait が発生するみたい。syslog 経由だからかなぁ・・・

- スポンサーリンク -