pound + lighttpd で Apache互換のログをとる

 Webalizserなどのログ解析ソフトを使いたい時、たいていはApache互換のログが必要となる。pound をフロントに置いて、裏でlighttpdを動かしている環境では、アクセス元ホストの情報がpoundのIPアドレスになってしまって都合が悪い。lighttpdは各機能がモジュールになっているので、accesslogというモジュールを有効にする。以下のような感じで、追加する。

server.modules = (
  "mod_accesslog",
  "mod_rewrite",
  "mod_redirect"
)

そうしたら、ログファイルを吐く場所とフォーマットを指定する。poundのヘッダ情報に X-FORWARDED-FOR っていうのがあって、これがpoundから見たアクセス元のIPアドレスになる。

accesslog.filename         = "/var/log/lighttpd/access.log"
accesslog.format           = "%{X-FORWARDED-FOR}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""

これで、Apache互換のログが吐けるようになるようだ。

pound + lighttpd で Apache互換のログをとる