Welcome! Log In Create A New Profile

Advanced

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Илья Шипицин
December 11, 2013 12:40AM
10 декабря 2013 г., 19:37 пользователь Maxim Dounin
<mdounin@mdounin.ru> написал:
> Hello!
>
> On Tue, Dec 10, 2013 at 05:16:45PM +0600, Илья Шипицин wrote:
>
>> 10 декабря 2013 г., 17:13 пользователь Maxim Dounin
>> <mdounin@mdounin.ru> написал:
>> > Hello!
>> >
>> > On Tue, Dec 10, 2013 at 09:13:16AM +0600, Илья Шипицин wrote:
>> >
>> >> Добрый день!
>> >>
>> >> как-то уже писал на эту тему. дошли руки, выкатил патч в продакшен.
>> >> идея в том, что отправка заголовка "Connection: keep-alive" в
>> >> большинстве случаев не нужна.
>> >>
>> >> абонентская база - сотни тысяч пользователей, сотни миллионов запросов
>> >> в месяц. думаю, спустя месяц-два можно будет считать, что все
>> >> протестировано во всех возможных ситуациях.
>> >>
>> >>
>> >> желающие - приглашаются к тестированию.
>> >>
>> >> данное поведение "подсмотрено" у IIS, который по любым метрикам
>> >> занимает десятки процентов "рынка":
>> >> http://news.netcraft.com/archives/2013/12/06/december-2013-web-server-survey.html
>> >> - поэтому есть уверенность, что все обойдется без побочных эффектов
>> >
>> > Илья, я вроде как сделал патч с таким поведением ещё в процессе
>> > прошлого обсуждения:
>> >
>> > http://mailman.nginx.org/pipermail/nginx-ru/2013-May/051059.html
>> >
>> > Странно видить попытки изобрести велосипед заново вместо того,
>> > чтобы заняться тестированием и последующим убеждением, что это
>> > надо закоммитить, тем более про "тщательное тестирование" было
>> > явно написано. ;)
>>
>> это именно та тема и есть, сейчас дошли руки "тщательно
>> протестировать". я запустил в продакшн.
>
> Меня в первую очередь удивило, что вместо патча, нарисованного ещё
> полгода назад, к письму о "потестировать" прилагается совсем
> другой патч, с чуть-чуть другими условиями и стилистическими
> проблемами. Я бы всё-таки рекомендовал тестировать то, что потом
> будем коммитить.
>
>> ждем пару месяцев (и, если проблем не всплывает, считаем, что все ок) ?
>
> Я, честно говоря, пребывал в надежде, что патч уже полгода
> тестируется. ;)
>
> Но если нет - то, видимо, так и делаем. Только просьба - взять
> для тестирования патч в том виде, в каком его предполагается
> коммитить, if any:

без проблем. сегодня запущу в продакшн в таком виде

не совсем понятно, зачем делать условие "r->http_version < NGX_HTTP_VERSION_11"
для версии 0.9, насколько я понимаю, и в моем и в вашем случае будет фигня


>
> # HG changeset patch
> # User Maxim Dounin <mdounin@mdounin.ru>
> # Date 1386675580 -14400
> # Tue Dec 10 15:39:40 2013 +0400
> # Node ID 178020375791a638c79cfe1330bddabbf830f0bf
> # Parent 58716fd3bd2d63c93b0c04fa121232b7126e724b
> Http: Connection header sending change.
>
> Now "Connection: keep-alive" isn't sent if persistent connections are
> used by default (in HTTP/1.1) and we don't add Keep-Alive header.
>
> This is an experimental patch, see here for discussion:
> http://mailman.nginx.org/pipermail/nginx-ru/2013-May/051052.html
>
> diff --git a/src/http/ngx_http_header_filter_module.c b/src/http/ngx_http_header_filter_module.c
> --- a/src/http/ngx_http_header_filter_module.c
> +++ b/src/http/ngx_http_header_filter_module.c
> @@ -386,7 +386,10 @@ ngx_http_header_filter(ngx_http_request_
> len += sizeof("Connection: upgrade" CRLF) - 1;
>
> } else if (r->keepalive) {
> - len += sizeof("Connection: keep-alive" CRLF) - 1;
> +
> + if (r->http_version < NGX_HTTP_VERSION_11 || clcf->keepalive_header) {
> + len += sizeof("Connection: keep-alive" CRLF) - 1;
> + }
>
> /*
> * MSIE and Opera ignore the "Keep-Alive: timeout=<N>" header.
> @@ -559,8 +562,11 @@ ngx_http_header_filter(ngx_http_request_
> sizeof("Connection: upgrade" CRLF) - 1);
>
> } else if (r->keepalive) {
> - b->last = ngx_cpymem(b->last, "Connection: keep-alive" CRLF,
> - sizeof("Connection: keep-alive" CRLF) - 1);
> +
> + if (r->http_version < NGX_HTTP_VERSION_11 || clcf->keepalive_header) {
> + b->last = ngx_cpymem(b->last, "Connection: keep-alive" CRLF,
> + sizeof("Connection: keep-alive" CRLF) - 1);
> + }
>
> if (clcf->keepalive_header) {
> b->last = ngx_sprintf(b->last, "Keep-Alive: timeout=%T" CRLF,
>
> --
> Maxim Dounin
> http://nginx.org/
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

патч для отключения заголовков "Connection: keep-alive" (еще раз)

Илья Шипицин December 09, 2013 10:14PM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Maxim Dounin December 11, 2013 12:22AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Илья Шипицин December 11, 2013 12:22AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Maxim Dounin December 11, 2013 12:22AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Илья Шипицин December 11, 2013 12:30AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Maxim Dounin December 11, 2013 12:40AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Илья Шипицин December 11, 2013 12:40AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Maxim Dounin December 11, 2013 09:44AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Илья Шипицин December 11, 2013 11:42AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Maxim Dounin December 11, 2013 01:06PM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Илья Шипицин December 11, 2013 01:22PM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Ruslan Ermilov December 14, 2013 01:00PM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Илья Шипицин December 18, 2016 12:34PM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

ru@nginx.com December 19, 2016 07:28AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Илья Шипицин December 19, 2016 07:44AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

S.A.N December 19, 2016 09:03AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Maxim Dounin December 19, 2016 11:30AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Илья Шипицин January 18, 2017 12:00AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

ru@nginx.com January 19, 2017 03:10AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Илья Шипицин January 19, 2017 03:42AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Илья Шипицин January 19, 2017 04:18AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Maxim Dounin December 11, 2013 12:34AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Илья Шипицин December 11, 2013 12:40AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Алексей Сундуков December 18, 2013 07:50AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Илья Шипицин December 18, 2013 07:54AM

Re: патч для отключения заголовков "Connection: keep-alive" (еще раз)

Илья Шипицин December 18, 2013 08:00AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 306
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready