ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: патч для Connection: Keep-Alive


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: патч для Connection: Keep-Alive
  • From: Илья Шипицин <chipitsine@xxxxxxxxx>
  • Date: Tue, 14 May 2013 21:39:42 +0600
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type:content-transfer-encoding; bh=2UX3JwSMdz82JhqzlA9uvfwD4FrrbxGfdu4mnja5HfM=; b=srBHDSYxURRws7qSr1Lh7FEi1hp0NLOFo+pyFvqwqx4wqLurUm0mnFz2cA8Z5gU+Ok VXriKMKhPbVKmJc1h12PFTW9ESwO5ydpwfCvmaaf1oxlOw4e5Qg18P00fwgE1mmuh5eG CLhcWEpO1aqMFLtEumnUHIDSj9vqsK21FolymHMA5wYDhSXa4MvebdUgrdGy3YOr04i6 tIDtFamrVRhrg3wBcm8ma0AVrBSdtlRrqDvrN+zjqEydxzmpu0upjMZwmIfBWOYbYvbn QWbfWkoYRhzxx3hRYhGkA+FFMiCK24qla07B7UG96RLBdM0coyoPWEKywYndBe9pOOCV hN/Q==
  • In-reply-to: <20130514151605.GD69760@mdounin.ru>
  • References: <CAFHpkQF_oxjeMt02DTCEDYZinVxGHY1Ov8KDmavSnYTraf25LQ@mail.gmail.com> <20130514114117.GC69760@mdounin.ru> <CAFHpkQGAAxvWdDfdswYfY-pkv6kJBAr0dKaW6oSTNkHX_=27cQ@mail.gmail.com> <20130514151605.GD69760@mdounin.ru>

14 мая 2013 г., 21:16 пользователь Maxim Dounin <mdounin@xxxxxxxxxx> написал:
> Hello!
>
> On Tue, May 14, 2013 at 06:15:05PM +0600, Илья Шипицин wrote:
>
> [...]
>
>> во всех случаях, когда добавлялся Keep-Alive: timeout, добавлялся
>> также и Connection. не вижу ничего некорректного. можете уточнить ?
>>
>> другое дело, что я накосячил и не добавлял Keep-Alive: timeout там,
>> где предполагалось. да, признаю ошибку. вложил новый патч.
>
> Это я не досмотрел патч, и предположил не ту ошибку из двух
> возможных.
>
> [...]
>
>> --- src/http/ngx_http_header_filter_module.c.orig       Tue May 14 12:17:59 
>> 2013
>> +++ src/http/ngx_http_header_filter_module.c    Tue May 14 16:04:29 2013
>> @@ -382,7 +382,7 @@
>>      if (r->headers_out.status == NGX_HTTP_SWITCHING_PROTOCOLS) {
>>          len += sizeof("Connection: upgrade" CRLF) - 1;
>>
>> -    } else if (r->keepalive) {
>> +    } else if ((r->keepalive) && ((r->http_version == NGX_HTTP_VERSION_10) 
>> || (clcf->keepalive_header)) ) {
>>          len += sizeof("Connection: keep-alive" CRLF) - 1;
>>
>>          /*
>> @@ -397,9 +397,7 @@
>>              len += sizeof("Keep-Alive: timeout=") - 1 + NGX_TIME_T_LEN + 2;
>>          }
>>
>> -    } else {
>> -        len += sizeof("Connection: close" CRLF) - 1;
>> -    }
>> +    }
>
> "Connection: close" при выключенном keepalive'е нужно указывать,
> не возвращать соответствующий заголовок - чревато ненужными
> проблемами и безуспешными попытками клиентов послать в то же
> соединение следующий запрос.
>

я понимаю ваши опасения, однако с точки зрения буквы закона, rfc 2616

8.1.4 Practical Considerations


 ........

   A client, server, or proxy MAY close the transport connection at any
   time.
 .........



с точки зрения духа закона так поступает IIS (по данным Netcraft-а 16%
сайтов), как-то же это работает ...



у нас 50 миллионов запросов в день. это в районе 1 гигабайта на
хедерах "Connection:". нам эта цифра интересна.
мы, пожалуй, потестируем, всех желающих тоже приглашаю к тесту.


> Вообще я бы, честно говоря, не трогал это место.

это абстрактные опасения или вы знаете сценарии, при которых это
приведет к проблемам ?

>
>
> --
> Maxim Dounin
> http://nginx.org/en/donation.html
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@xxxxxxxxx
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.