On Tuesday 24 May 2016 12:26:22 S.A.N wrote: > > > > > > Даже в РНР появляются новые асинхронные фрейворки, не говоря уже про > > > Node.js, Go, etc.. > > > Возможно уже пришло время, переосмыслить и переписать логику работы > > > upstream > > > в Nginx? > > > Тогда асинхронные бекенды смогут эффективней работать. > > > > > > > Асинхронный nginx прекрасно работает по HTTP/1.x сам с собой, так > > какие проблемы > > возникают у перечисленных фреймворков? > > > > Мы уже ходим по кругу :), я уже писал, что браузеры в реальной жизни часто > отправляют множество запросов в одном соединении, в результате все эти > запросы становятся в очередь к бекенду, вместо параллельного выполнения, > вообще браузеры одновременно более 4-8 соединений не открывают, давайте > говорить честно, Nginx выполняет запросы HTTP/1.x в одном соединении > последовательно, а не асинхронно.
Какой браузер отправляет в одном HTTP/1.1 соединении следующий запрос не дожидаясь ответа на предыдущий? Ещё раз, если речь идет об общении между бэкендом и nginx, то nginx так не делает, он использует столько соединений, сколько необходимо обработать запросов и ни один запрос не ждет в очереди. Ситуация браузер <-> сервер, и сервер <-> бэкенд - они разные, не нужно их мешать в одну кучу. Проблема, которую решает HTTP/2 возникает только между браузером и сервером, и только потому, что браузер по RFC ограничен в количестве TCP соединений. Когда такого ограничения нет, то HTTP/1 с одним запросом на соединение работает лучше и эффективнее. > > Кстати nodejs/http-parser уже планируют реализовать HTTP/2, так что спрос на > мультиплексирования запросов к бекенду, будет только расти. > Что совершенно не делает HTTP/2 лучшим выбором при общении с бэкендом. Мультиплексирование запросов к бекенду есть и без HTTP/2, на уровне TCP, и HTTP/2 тут только лишний оверхэд создает. Подозреваю, что уже для 1000 запросов оверхэд может стать весьма заметным. -- Валентин Бартенев _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru