Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Синхронизация nginx соединений
- To: nginx-ru@xxxxxxxxx
- Subject: Re: Синхронизация nginx соединений
- From: Илья Шипицин <chipitsine@xxxxxxxxx>
- Date: Thu, 11 Oct 2012 17:55:43 +0600
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=jTpoMSWO7dtRLQnamJlmQb/8SoKT/Wwwt7L5P4YZU/E=; b=GdviA0QzwHtdqO9kZ1hb7gUZIixeC0AGfWDeYCxpR7p6fIO8cSQRLMIEHXCZg8rWqI c/zVKLVMW3TmbHBW3snLT/ctW26ZeUqougeVYL8rOZMgl9eViOoZBgpNVcmgUxrZqBai gB7LmOEEL8lO81wsVcBhHAXskTOZBjGpfTaTPmYEnGUU1Q41GXfnpM55l7QcZHYddTWm StGVhwbHym0UVtIe1ROqhnAZ1+jTMd20V4ZCZSGD95+AMFkxn+oCD1kNmX2olGW+eNQz PgSNVU68v9Tn9CjFtwh2bVc659IaoSaHtbMYSFpKCL6eZiLPWo5NZ+B3WBu2fJwJgeU5 aopQ==
- In-reply-to: <CAPKsgQzw=5dwC4V-ZLNGq50bXbV9Fyh3W6XRwGjhyQtjpbQgTQ@mail.gmail.com>
- References: <CAPKsgQzrhreC0FkBk=Sa84yVaGGojQn_uyqi2+bYX9ZzXDcXQA@mail.gmail.com> <CAFHpkQEJdtC7FGbtnnOkH8cJJNmSt5gqyZ6CvJyG9CcZ3SPQ9g@mail.gmail.com> <CAPKsgQzw=5dwC4V-ZLNGq50bXbV9Fyh3W6XRwGjhyQtjpbQgTQ@mail.gmail.com>
ну смотрите. у вас есть 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@xxxxxxxxx> написал:
Ну скажем, 50 Мбит. Как это влияет? Если я не хочу потерять ни одного коннекта. Я понимаю, что это задача не nginx'а. Хотел узнать как можно обновлять ядра и производить перезагрузку ноды с nginx'ом и не боятся потерять соединения.
11 октября 2012 г., 11:26 пользователь Илья Шипицин <chipitsine@xxxxxxxxx> написал:
а какая у вас нагрузка ? в запросах/секунду и в байтах/секунду ?
10 октября 2012 г., 16:43 пользователь Viacheslav Biriukov <v.v.biriukov@xxxxxxxxx> написал:
Привет.
Есть кластер active/passive из двух nginx балансеров. Хочется, что бы при переезде VIP с активной на пассивную (к примеру для апдейта ядра, ребута и т.д.) не терялись соединения. Большие файлы продолжали отдаваться клиентам.
Подскажите пожалуйста как это правильно реализовать.
-- Viacheslav Biriukov BR
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|