Got bit by an annoying bug when I upgraded Passenger earlier today. GET requests work fine, but POST requests would not get through to Rails, instead crash with a repeatable:
closed stream /usr/local/lib/ruby/gems/1.9.1/gems/passenger/vendor/rack-1.0.0- git/lib/rack/rewindable_input.rb:86:in `make_rewindable'
This happens with Nginx 0.8.13 (edge) and 0.7.61 (last stable), Passenger 2.2.5 and Ruby 1.9.1-p234. The problem seems to be the later. It turns out Windows and Unix (more specifically POSIX) handle tempfiles differently. You can guess which OS does a better job.
At any rate, Ruby 1.9.1-p234 decided to revert to Windows-like behavior (unlink closes), which caused Rack to lose hold of its temporary files. The solution, while we all wait for a new release of Ruby 1.9.1 is to nix line 140 in tempfile.rb.