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