Welcome! Log In Create A New Profile

Advanced

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

May 24, 2016 10:38AM
> > Nginx никогда не посылает запрос в то же соединение, пока не
> получит
> > ответ
> > и соединение освободиться. Т.н. pipelining он не умеет и не
> > использует.
> >
> > Если бы следующий запрос пришел до того, как на первый был получен
> > ответ,
> > то он бы был отправлен на бекенд в другом соединении.
> >
> > Т.е. никакой проблемы между nginx и бекендом нет.
>
> Да, конечно Nginx не пошлет второй и третий запрос на бекенд, пока
> первый не ответит, в этом и проблема, потому что он ждет ответа на
> первый запрос, я бы ещё понял если бы Nginx не ждал ответа на первый
> запрос и отправил второй и третий запрос в другом свободном конекте
> или открыл новый конект, но Nginx эти запросы будет держать в очереди
> и это очень плохо.
> Могу выслать код теста.
>

Я ещё раз проверил, Nginx разносит три запроса из одного клиенского соеденения, по разным соединениям бекенда только если клиент сделал запросы по протоколу HTTP/2, если клиент сделает эти три запроса по протоколу HTTP/1.1, тогда Nginx никогда не разносит запросы из одного клиентского соединения по разным соединениям бекенда.

Проверил на Nginx/1.9.15 без стороних модулей.
Я здесь выложу исходники тест скриптов, они не большие и результат, я тестировал в nc чтобы убедится что все три запроса отправляются в одном соединение.

В роли бекенда может быть все что угодно, главное чтобы бекенд умел принимать и паралейно выполнять новые соеденения, даже FPM с тремя воркерами подойдет.

Три РНР скрипта:

-------------------------------------------------- 1.php --------------------------------------------------
<?php

sleep(3);

header('X-Time: '.time());
header('Content-Length: 3');

echo "1\n\n";


-------------------------------------------------- 2.php --------------------------------------------------
<?php

sleep(2);

header('X-Time: '.time());
header('Content-Length: 3');

echo "2\n\n";

-------------------------------------------------- 3.php --------------------------------------------------
<?php

sleep(1);

header('X-Time: '.time());
header('Content-Length: 3');

echo "3\n\n";


-------------------------------------------------- console# nc 127.0.0.1 80 --------------------------------------------------
GET /test/1.php HTTP/1.1
Host: localhost

GET /test/2.php HTTP/1.1
Host: localhost

GET /test/3.php HTTP/1.1
Host: localhost

HTTP/1.1 200 OK
Server: nginx/1.9.15
Date: Tue, 24 May 2016 14:22:19 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 3
Connection: keep-alive
X-Powered-By: PHP/7.0.6
X-Time: 1464099738

1

HTTP/1.1 200 OK
Server: nginx/1.9.15
Date: Tue, 24 May 2016 14:22:21 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 3
Connection: keep-alive
X-Powered-By: PHP/7.0.6
X-Time: 1464099741

2

HTTP/1.1 200 OK
Server: nginx/1.9.15
Date: Tue, 24 May 2016 14:22:22 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 3
Connection: keep-alive
X-Powered-By: PHP/7.0.6
X-Time: 1464099743

3

--------------------------------------------------

Посмотрите на заголовки X-Time, видно что скрипты выполнялись последовательно, вначале первый потом второй потом третий.
Если бы Nginx эти три запроса распределил на три разных соединения с бекендом, в заголовках X-Time было бы время в обратном порядке, потому что в скриптах вызывается sleep со значением 3s - 2s - 1s соответственно.
Subject Author Posted

proxy_http_version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 07, 2016 10:31AM

Re: proxy_http_version 2; без SSL, для мультиплексирование запросов к бекенду

ex May 10, 2016 06:10AM

Re: proxy_http_version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 10, 2016 07:43AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Валентин Бартенев May 10, 2016 09:26AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Илья Шипицин May 10, 2016 09:58AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Валентин Бартенев May 10, 2016 10:02AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Илья Шипицин May 10, 2016 10:04AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Валентин Бартенев May 10, 2016 10:18AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Илья Шипицин May 10, 2016 11:18AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Konstantin Tokarev May 10, 2016 12:18PM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Валентин Бартенев May 10, 2016 01:10PM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 10, 2016 10:21AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Валентин Бартенев May 10, 2016 10:42AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 10, 2016 12:28PM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Валентин Бартенев May 10, 2016 01:22PM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 10, 2016 02:17PM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 24, 2016 08:34AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Валентин Бартенев May 24, 2016 08:46AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 24, 2016 08:57AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 24, 2016 10:38AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Валентин Бартенев May 24, 2016 09:40AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Валентин Бартенев May 24, 2016 10:50AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Vasiliy P. Melnik May 24, 2016 11:14AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Валентин Бартенев May 24, 2016 11:36AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 24, 2016 11:20AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Валентин Бартенев May 24, 2016 11:42AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 24, 2016 12:26PM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Валентин Бартенев May 24, 2016 01:18PM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 25, 2016 07:19AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Валентин Бартенев May 25, 2016 12:00PM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 26, 2016 07:16AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Evgeniy Berdnikov May 25, 2016 12:04PM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Валентин Бартенев May 25, 2016 12:10PM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 26, 2016 07:28AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Evgeniy Berdnikov May 26, 2016 08:40AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 30, 2016 07:11AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Konstantin Tokarev May 30, 2016 07:18AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 30, 2016 08:17AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Konstantin Tokarev May 30, 2016 08:24AM

Re: proxy http version 2; без SSL, для мультиплексировани е запросов к бекенду

Konstantin Tokarev May 30, 2016 08:24AM

Re: proxy http version 2; без SSL, для мультиплексировани е запросов к бекенду

S.A.N May 30, 2016 09:15AM

Re: proxy http version 2; без SSL, для мультиплексировани е запросов к бекенду

Evgeniy Berdnikov May 30, 2016 11:20AM

Re: proxy http version 2; без SSL, для мультиплексирован ие запросов к бекенду

S.A.N May 30, 2016 01:19PM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Илья Шипицин May 26, 2016 11:26AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 26, 2016 12:12PM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Илья Шипицин May 27, 2016 01:22AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N May 27, 2016 06:04AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Oleg A. Mamontov May 27, 2016 06:10AM

Re: proxy http version 2; без SSL, для мультиплексировани е запросов к бекенду

S.A.N May 27, 2016 06:39AM

Re: proxy http version 2; без SSL, для мультиплексировани е запросов к бекенду

Maxim Dounin May 27, 2016 11:32AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Илья Шипицин May 27, 2016 06:58AM

Re: proxy http version 2; без SSL, для мультиплексировани е запросов к бекенду

S.A.N May 27, 2016 07:13AM

Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

Evgeniy Berdnikov May 24, 2016 11:20AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 72
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready