nginx crash

Maxim Dounin mdounin at mdounin.ru
Mon Nov 14 16:50:39 UTC 2011


Hello!

On Tue, Nov 15, 2011 at 12:13:21AM +0800, ビリビリⅤ wrote:

> Hello,
> 
> first I haven't use proxy_http_version 1.1;
> 
> and all of those server are only running on http proxy, and the crash
> happen on static file only, it will contain Content-Length headers.
> 
> I will try to change proxy_http_version to 1.1 to test, thanks for your advices.

It's completely unrelated to the crash.

Maxim Dounin

> 
> 2011/11/14 Maxim Dounin <mdounin at mdounin.ru>:
> > Hello!
> >
> > On Sun, Nov 13, 2011 at 11:16:56PM +0000, António P. P. Almeida wrote:
> >
> >>
> >> On 12 Nov 2011 14h07 WET, magicbearmo at gmail.com wrote:
> >>
> >> > happen on a of main upstream server dead.
> >> >
> >> > Here is the config
> >> >
> >> > proxy_cache_path /dev/shm/cdn_cache_comment levels=1:2
> >> > keys_zone=cache_comment_mem:32m max_size=128m; limit_req_zone
> >> > $binary_remote_addr zone=limit_comment:16m rate=50r/s;
> >> >
> >> > upstream backend_comment {
> >> >     server 10.0.0.1 weight=10 fail_timeout=30s;
> >> >     server 10.0.0.2 backup weight=5 fail_timeout=30s;
> >> >     keepalive 30;
> >>         ^^^^^^^^^^^^^
> >> I believe you have to use:
> >>
> >> proxy_http_version 1.1;
> >>
> >> in the location that invoke this upstream for getting keep alive to
> >> the backends. AFAIK this is undocumented and would be nice if Maxim
> >> can shed some light on this issue.
> >
> > Keepalive connections are possible with HTTP/1.0 as well.  There
> > are some problems with them though:
> >
> > 1. There is no standard which defines keepalive connections in
> > HTTP/1.0.  It works with major web servers (including nginx), but
> > may not work with others.
> >
> > 2. In HTTP/1.0 connection can't be kept alive if response
> > Content-Length isn't known (as response end is signalled by
> > connection close).
> >
> > Due to the above reasons I would recommend using HTTP/1.1 to keep
> > backend connections alive.  But it doesn't mean they aren't
> > possible (and I'm quite sure MagicBear's config works as expected).
> >
> > The required thing is
> >
> >    proxy_set_header Connection "";
> >
> > in case of HTTP/1.1, or
> >
> >    proxy_set_header Connection "keep-alive";
> >
> > in case of HTTP/1.0.
> >
> > (Well, "Connection: keep-alive" will work in HTTP/1.1 case as
> > well, actually.  But an empty string is enough.)
> >
> >> Ditto for:
> >>
> >> fastcgi_keep_conn on;
> >>
> >> in the case of FCGI upstreams.
> >
> > The fastcgi_keep_conn directive is required to keep connections
> > alive with fastcgi upstreams.  It instructs nginx to claim
> > responsibility of closing connection with appropriate flag in
> > fastcgi protocol.  Without this directive connection will be
> > closed by fastcgi application (upstream) and it won't be possible
> > to keep it alive.
> >
> > Maxim Dounin
> >
> > _______________________________________________
> > nginx-devel mailing list
> > nginx-devel at nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx-devel
> 
> _______________________________________________
> nginx-devel mailing list
> nginx-devel at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-devel



More information about the nginx-devel mailing list