lighttpd1.4.16では、Railsのredirectが上手く動かない

諏訪湖畔にて


会社でチームの若者(私も若者です!)たちがVirtual Iron(仮想化ソフトウェア)の検証をしてくれているのですが、その中で新しいlighttpdのバージョン(1.4.16)でRailsアプリ環境を構築してもらっています。

が、いざ稼動させてみると404(Page Not Found)が連発、といった不思議な事象が発生。

というわけで、ログを確認すると面白い事象に遭遇。


Webサーバ(lighttpd)のアクセスログは以下のような感じ。確かに404

xxx.xxx.xxx.xxx hostname:xxxxx - [14/Aug/2007:16:56:19 +0900] "GET / HTTP/1.1" 404 94 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)"

が、Railsのアプリケーションログを見ると302(redirect)で終わっている。ぐはっ。

Processing HogeController#routing (for xxx.xxx.xxx.xxx at 2007-08-14 16:56:19) [GET]
  Session ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  Parameters: {"action"=>"routing", "controller"=>"hoge"}
Redirected to http://xxx.xxx.xxx.xxx/mypage
Completed in 0.00470 (212 reqs/sec) | DB: 0.00649 (138%) | 302 Found [http://xxx.xxx.xxx.xxx/]


どうも、これは既知の問題らしい。(redirectのときに一回画面をはさむようになった)

以下のページに同じことを体験している方もいたり、lighttpdのtracでもissueとして管理されています。

とりあえず、バージョンを1.4.15にダウングレードしたら正常に動きました。ふぅ。