unicorn Ruby/Rack server user+dev discussion/patches/pulls/bugs/help
 help / color / mirror / code / Atom feed
From: Eric Wong <normalperson@yhbt.net>
To: unicorn list <mongrel-unicorn@rubyforge.org>
Subject: Re: Unicorn and HAProxy, 500 Internal errors after checks
Date: Thu, 2 Dec 2010 04:59:11 +0000	[thread overview]
Message-ID: <20101202045911.GA2688@dcvr.yhbt.net> (raw)
In-Reply-To: <4CF6EB6B.1070603@gmail.com>

Lawrence Pit <lawrence.pit@gmail.com> wrote:
> Eric Wong <normalperson@yhbt.net> 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 - mongrel-unicorn@rubyforge.org
http://rubyforge.org/mailman/listinfo/mongrel-unicorn
Do not quote signatures (like this one) or top post when replying


  reply	other threads:[~2010-12-02  4:59 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-01 11:59 Unicorn and HAProxy, 500 Internal errors after checks Pierre
2010-12-01 16:12 ` Clifton King
2010-12-01 17:02   ` Pierre
2010-12-01 16:52 ` Eric Wong
2010-12-01 17:14   ` Pierre
2010-12-01 19:58     ` Eric Wong
2010-12-02  0:42       ` Lawrence Pit
2010-12-02  4:59         ` Eric Wong [this message]
2010-12-02  8:38       ` Pierre
2010-12-02 17:39         ` Eric Wong
2010-12-03  8:41           ` Pierre
2010-12-04 23:38             ` Eric Wong
2010-12-05  1:04               ` russell muetzelfeldt
2010-12-06 18:39                 ` Eric Wong
2010-12-02 17:41     ` Eric Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://yhbt.net/unicorn/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20101202045911.GA2688@dcvr.yhbt.net \
    --to=normalperson@yhbt.net \
    --cc=mongrel-unicorn@rubyforge.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://yhbt.net/unicorn.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).