On Mon, Aug 22, 2011 at 1:38 PM, Eric Wong <[email protected]> wrote: > Joe Van Dyk <[email protected]> wrote: >> Narrowed this down a little bit more. >> >> Nginx is receiving a HEAD request, unicorn is logging a GET. >> Somewhere along the chain, the http method is getting mangled. > > That's not good. I'm pretty sure all versions of nginx send HEAD > requests as-is to Unicorn, so something in your Rack middleware stack is > rewriting HEAD => GET. > > You can strace a Unicorn worker to confirm it receives a HEAD and not a > GET at the socket level. Do it on a server that's not receiving any > other traffic and use one worker process so you're always stracing the > correct worker process.
I started a new Rails application at https://github.com/joevandyk/unicorn-head-requests When I send unicorn a HEAD request, it logs it as a GET. This shows up in the unicorn log: 127.0.0.1 - - [23/Aug/2011 11:15:38] "GET / HTTP/1.1" 200 - 0.0231 But this is what shows up in Rails: Started HEAD "/" for 127.0.0.1 at 2011-08-23 11:15:58 -0700 Processing by WelcomeController#index as _______________________________________________ Unicorn mailing list - [email protected] http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
