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

S.A.N nginx-forum на forum.nginx.org
Ср Май 25 11:19:04 UTC 2016


Валентин Бартенев Wrote:
> Какой браузер отправляет в одном HTTP/1.1 соединении следующий запрос
> не
> дожидаясь ответа на предыдущий?

Вы правы, я наконец то понял, браузеры отправляют в одном соединении запросы
последовательно, всегда дожидаясь ответа на предыдущий, т.е. очередь
запросов в соединении нет, по этому сделать какое-то мультиплексирования не
выйдет, потому что сервер не сможет прочитать из сокета новые запросы пока
не ответит на предыдущий запрос.

> и HTTP/2 тут только лишний оверхэд создает.  Подозреваю, что уже для
> 1000 запросов оверхэд может стать весьма заметным.

В спеке протокола FastCGI есть мультиплексирование, правда его ещё никто не
реализовал, но если HTTP/2 дает большой оверхед, возможно FastCGI будет
лучше, для мультиплексирования запросов Nginx к бекендам?

Нам это особенно нужно вот для чего:
Наши бекенды (микросервисы) делают запросы друг к другу внутри дата центра,
запросы ходят через Nginx, он нужен для кеширования и балансировки, ~70%
ответов Nginx отдает из своего кеша, причем этот кеш публичный, клиенты
могут его загружать из вне аяксом.

Вот здесь я уже про это спрашивал
https://forum.nginx.org/read.php?21,266537

Раньше мы для этого использовали мемкеш, это было очень просто и удобно
бекенд делает gets (мультигет) получает кучу ответов, теперь когда перешли
на НТТР, сделать такой мультигет запрос к Nginx оказывается нельзя, я знаю
что бекенд может каждый запрос послать в отдельном соединении, но в
результате очень много одновременно открытых дескрипторов, и там тоже свои
оверхеды.

Кстати если Nginx, будет уметь слушать протокол мемкеша, он бы мог стать для
многих отличной его заменой, схема простая Nginx принимает запросы по
протоколу мемкеш, интерпритирует их как НТТР, проверяет наличия ответа в
своем кеше, если нет, отправляет запрос на бекенд, получает ответ от
бекенда, сохраняет его в кеше, схема очень удобная.

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,266693,267140#msg-267140



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