Под "просто сокетом" панимается установка двунаправленного tcp
соединения. От китайцев спасает ssl, ну по крайей мере я в это верю :)
Ага, так значит фаза авторизации у Вас всё-таки есть, причём недешёвая (ssl).
Тогда о чём весь этот джаз?
Про кроликов - я согласен, но альтернативы не вижу на "пока что".
Ngnix сейчас выступает как ssl+keep alive фронтенд для клиентов, в
ближайшем будущем
сервлеты отдающие изменеия клиенту перестанут закрывать аут и начнут
выталкивать
изменения.
David Mzareulyan wrote:
Hello Kostya,
А вот тут Вы не правы (скажу очень мягко). Это сильно зависит от
бекенда. У меня есть сессия, и мне выгодно иметь персистент
конекшен. Т.к. бекенд никогда не закончит отдавать, он будет писать
в аут до тех пор пока клиент не скажет логаут.
Эта задача, вообще говоря, не требует обязательного персистента с
бэкендом. Но она да, требует некоторой доработки nginx-а. Это
обсуждалось в рассылке, но, к сожалению, Игорь особого интереса к
задаче не проявил.
А можно чуть подробнее? Пока не тестированно. Находится в глубокой
бете. Если бекенд "никогда" не закончит писать, то это не сработает в
случае фронтенда ngnix? Я только несколько дней как читаю эту конфу.
Сработает, скорее всего. Если nginx не отрубит бэкенд по таймауту, конечно,
ну так это настраивается.
А то, о чём я говорю -- это всевозможные сomet- и push-технологии, в которых
гораздо удобнее было бы разделить слой, поддерживающий соединение с клиентом
(nginx, очевидно) и слой, подающий в это соединение данные (бэкенд). Но сейчас
такую конструкцию сделать всё равно невозможно.
Это дорго каждый раз устанавливать
соединение и т.п. С другой стороны от http тоже никак не уйдеш, есть
клиенты которые сидят за прокси, если прокси забыть то всех бы
спасли
tcp соединения... Но клиенты иногда еще посылают команды серверу. И
очень бы хотелось использовать тот же сокет, тогда на стороне
бекенда
я могу избежать авторизации.
А это уже от корявости архитектуры. Не приспособлен HTTP для
подобного, как не приспособлены кролики для лазанья по деревьям. И
потом, что значит "тот же сокет"? Вы же сами только что о прокси
говорили, за которым хоть миллиард китайцев сидеть может. И будут они
все слать всё в "тот же сокет" без авторизации...
Проблемы тормозов на бекенде и решаем. Просто не хочется выставлять
прямо в инет сам бекенд. Просто страшно.
p.s.
Я думаю господин Сысоев будет несколько обескуражен
основной задачей "как можно быстрее освободить процесс backend для
следующих запросов" :)
Andrew Sitnikov wrote:
Hello Kostya,
KA> Плохо. Даже отвратительно. Ну ладно.
задача nginx как можно быстрее освободить процесс backend для
следующих запросов, keepalive совсем
этому не способствует. имхо вам надо не костыли а стороне frondend
изобретать а решать проблему с вашим
тормозным backend.