On Tue, Aug 23, 2011 at 11:22 AM, Joe Van Dyk <[email protected]> wrote:
> 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

I tracked down the exception to a bug in a Rack middleware.  But --
unicorn should be logging HEAD requests as a HEAD request (and not a
GET), right?

Joe
_______________________________________________
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