Re: Синхронизация nginx соединений
Anton Yuzhaninov
citrin at citrin.ru
Thu Oct 11 09:43:14 UTC 2012
On 10.10.2012 14:43, Viacheslav Biriukov wrote:
>
> Есть кластер active/passive из двух nginx балансеров. Хочется, что бы при
> переезде VIP с активной на пассивную (к примеру для апдейта ядра, ребута и т.д.)
> не терялись соединения. Большие файлы продолжали отдаваться клиентам.
Плавной миграции локального tcp соединения с одного хоста на другой AFAIK пока
нигде не реализовали. Теоретически это возможно (нужна поддержка в ядре OS), но
достаточно сложно в реализации.
Как уже писали выше можно заранее убирать IP из DNS, но это долго - запросы все
равно будут идти даже после того как истечет DNS TTL, да и сам TTL маленьким
делать плохо.
Лучше перед серверами с nginx поставить еще пару балансировщиков. Это могут быть
либо два сервера с Linux/FreeBSD либо аппаратные решения, например Cisco SLB.
Тгда перед выклюение одного из сервера с nginx надо на балансировщике один из
серверов пометить как неактивный, чтобы новые запросы на него не поступали, но
старые продолжали работать.
После этого нужно дождаться завершения текущих запросов, и сервер с nginx можно
перезагружать.
--
Anton Yuzhaninov
Подробная информация о списке рассылки nginx-ru