Re: Синхронизация nginx соединений

Илья Шипицин chipitsine at gmail.com
Thu Oct 11 11:55:43 UTC 2012


ну смотрите. у вас есть 2 nginx-а, правильно ?
и вы хотите перекидывать tcp-конекции туда-сюда ?

рассмотрим ситуацию.
пришел пользователь. допустим, 1-й сервер отвечает (MASTER), 2-й на
подхвате (BACKUP).
запрос упал в апстрим. сервер сходил на первые два бекенда, понял, что там
глухо, третий бекенд ему ответил, полетели байтики "бекенд --> nginx -->
пользователь". с третьего бекенда.

тут происходит ая-я-я-й и 1-й nginx теряется.

с точки зрения здравого смысла, у 2-го nginx-а все это время должна
строиться идентичная картинка

а) он должен загрейлистить 2 бекенда
б) он должен понимать, что мы читаем ответ с третьего бекенда
в) все это дело он должен подхватить на лету

это капец.


есть темы с фаирволами, например PF + pfsync или аналогичные модули
синхронизации на iptables. Они синхронизируют состояния _транзитных_
tcp-сессий. Т.е. тех, которые начинаются не на нашем сервере и
заканчиваются где-то там далеко. В этом случае можно сделать CARP + pf +
pfsync и у вас фаирволы будут совершенно прозрачно переключаться туда-сюда.
Правда, для 50 мегабитного канала надо будет заложить еще такую же
пропускную способность для синхронизации. Но это именно транзитные
tcp-конекции.

вы же ведете речь о tcp-конекциях, которые нетранзитные, они терминируются
на ваших серверах и, собственно, по факту терминации происходят всякие
разные штуки, которые надо как-то распространять на второй сервер.

11 октября 2012 г., 14:52 пользователь Viacheslav Biriukov <
v.v.biriukov at gmail.com> написал:

> Ну скажем, 50 Мбит. Как это влияет? Если я  не хочу потерять ни одного
> коннекта.
> Я понимаю, что это задача не nginx'а. Хотел узнать как можно обновлять
> ядра и производить перезагрузку ноды с nginx'ом и не боятся потерять
> соединения.
>
>
>
> 11 октября 2012 г., 11:26 пользователь Илья Шипицин <chipitsine at gmail.com>написал:
>
> а какая у вас нагрузка ? в запросах/секунду и в байтах/секунду ?
>>
>> 10 октября 2012 г., 16:43 пользователь Viacheslav Biriukov <
>> v.v.biriukov at gmail.com> написал:
>>
>>> Привет.
>>>
>>> Есть кластер active/passive из двух nginx балансеров. Хочется, что бы
>>> при переезде VIP с активной на пассивную (к примеру для апдейта ядра,
>>> ребута и т.д.) не терялись соединения. Большие файлы продолжали отдаваться
>>> клиентам.
>>>
>>> Подскажите пожалуйста как это правильно реализовать.
>>>
>>>
>>> --
>>> Viacheslav Biriukov
>>> BR
>>>
>>>
>>>
>>> _______________________________________________
>>> nginx-ru mailing list
>>> nginx-ru at nginx.org
>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>>
>>
>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru at nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>
>
>
> --
> Viacheslav Biriukov
> BR
> http://biriukov.com
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20121011/0aa77e27/attachment.html>


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