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

Reply via email to