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

Evgeniy Berdnikov bgx на protva.ru
Вт Май 24 15:18:45 UTC 2016


On Tue, May 24, 2016 at 08:34:57AM -0400, S.A.N wrote:
> Протокол клиента HTTP/1.1 все три запроса браузер отправляет в одном
> конекте.
> Nginx отправляет все эти три запроса в одном конекте на бекенд.
> 
> Теперь смотрим как все плохо в HTTP/1.1 когда в одном конекте приходит
> очередь HTTP запросов, допустим время ответа у нас такое:
> 
> GET /one HTTP/1.1 -- 500ms
> GET /two HTTP/1.1 -- 20ms
> GET /three HTTP/1.1 -- 10ms
> 
> Бекенд многопоточный, он бы мог принять и обработать второй и третий запрос,
> не дожидаясь обработки первого медленного запроса.

 В принципе да, Nginx мог бы обрабатывать эти запросы параллельно. Не знаю,
 делает он так или нет, но ответы всё равно придётся отдавать в сеть
 последовательно: в HTTP/1.1 есть лишь pipelining, который подразумевает
 сериализацию ответов, но нет мультиплексирования, которое позволило бы
 переставлять ответы местами и/или выдавать по частям.
-- 
 Eugene Berdnikov



Подробная информация о списке рассылки nginx-ru