nginx crash

ビリビリⅤ orz at loli.my
Mon Nov 14 16:13:21 UTC 2011


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.

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



More information about the nginx-devel mailing list