Lawrence Pit <[email protected]> wrote:
> Eric Wong <[email protected]> wrote:
>> HAProxy starts writing request bodies to Unicorn as soon as the upload
>> starts,
>
> Is that also true when the nginx upload module is used? (assuming nginx  
> sits between HAProxy and the unicorns, otherwise it doesn't make sense  
> anyways). Unicorn is only hit after the complete upload is finished by  
> nginx. I would assume this wouldn't be different if HAProxy is put in  
> front of all the nginx servers.

I would setup a test and confirm.  You can do this trivially with the
following Rack app:

  use Rack::ContentLength
  use Rack::ContentType
  run lambda { |env|
    input = env['rack.input']
    buf = input.each do |line|
      # each line is printed as Unicorn receives it,
      # if Unicorn is behind nginx, the times for each
      # line should be roughly/exactly the same.
      puts "#{Time.now} #{line.inspect}"
    end
    [ 200, {}, [] ]
  }

And then telnetting or netcatting to your frontend, and typing the
following (no leading spaces, use a proper hostname for vhosts):

  PUT / HTTP/1.1
  Host: example.com
  Content-Length: 6

...and then hit Enter a few times while watching your Unicorn
terminal/logs.  If you delay between hitting the Enter nginx
should be buffering that.

> keep-alive options are in HAProxy since 1.4
>
> There is further new development on this front if you're using SSL. See  
> the first quick news section at http://haproxy.1wt.eu/ :
>
> "The main advantage over the x-forwarded-for patch is that it now  
> supports keep-alive"

Cool.

-- 
Eric Wong
_______________________________________________
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