会社でチームの若者(私も若者です!)たちが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として管理されています。
- http://trac.lighttpd.net/trac/ticket/1270
- http://d.hatena.ne.jp/hiro-ueda/20070806/1186408182
- http://forum.lighttpd.net/topic/11182
とりあえず、バージョンを1.4.15にダウングレードしたら正常に動きました。ふぅ。