Re: патч для Connection: Keep-Alive
Илья Шипицин
chipitsine at gmail.com
Tue May 14 15:39:42 UTC 2013
14 мая 2013 г., 21:16 пользователь Maxim Dounin <mdounin at mdounin.ru> написал:
> 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 at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
Подробная информация о списке рассылки nginx-ru