Назад | Перейти на главную страницу

Можно ли сбалансировать нагрузку между несколькими балансировщиками нагрузки Nginx без использования аппаратного балансировщика нагрузки?

Я планирую сбалансировать нагрузку между моими серверами приложений, используя отдельный сервер Nginx в качестве программного балансировщика нагрузки. Но на самом деле это потому, что балансировщик нагрузки перед серверами приложений позволяет мне обновлять сервер приложений (ОС, приложение и т. Д.), Когда я хочу, без простоев.

Потом я понял, как обновить сам балансировщик нагрузки? то есть мой сайт все равно упадет, когда мне нужно обновить ОС и Nginx на сервере, который действует как балансировщик нагрузки для моего приложения.

Поскольку о жесткой балансировке нагрузки не может быть и речи, мне было интересно, можно ли соединить два веб-сервера Nginx вместе, чтобы они вместе балансировали нагрузку на серверы приложений, позволяя мне обновлять по одному, когда мне нужно, без простоев.

Это реально?

Вам нужна общая точка доступа. Это нужно делать с виртуальными адресами или маршрутизацией. Лучший / самый простой способ добиться этого без дополнительного оборудования и протоколов использовать LVS.

LVS - это IP-балансировщик на уровне ядра, который может выполнять эту работу, очень быстрый и эффективный, с впечатляющей пропускной способностью. Вы также можете настроить filewall на том же узле.

Для вашей конфигурации самый простой способ - настроить LVS-NAT с двумя узлами (активное резервное копирование), он поддерживает тактовый сигнал между узлами и использует виртуальный IP-адрес для обеих сторон. Если главный узел выйдет из строя, то подчиненный отправит обновление arp на коммутатор и захватит IP-адрес.

Есть масса утилит настройки, в некоторых дистрибутивах есть необычные утилиты для настройки, напр. RHEL / Centos / Fedora имеет веб-интерфейс пираньи.

Для реальных серверов вы можете настроить тайм-ауты, расписание, коэффициенты, мониторинг, сохранение сеанса и т. Д. Довольно гибко.

Кроме того, полезно обмениваться информацией о сеансе между узлами.

Рекомендуемые документы:

Официальный представитель LVS: http://www.linuxvirtualserver.org/Documents.html

LVS вики: http://kb.linuxvirtualserver.org/wiki/Main_Page

это действительно зависит от того, как вы размещаете свои машины. лучшие дешевые хостеры, которые арендуют аппаратные серверы или виртуальные машины, предлагают какой-то резервный IP-адрес, который может быть перенаправлен на другие серверы; обычно переключается вручную (или автоматически с помощью какого-либо инструмента мониторинга, но это не рекомендуется). это достаточно удобно для простых настроек.

если вы используете какой-то серверный корпус и запускаете серверы с несколькими сетевыми адаптерами, таким образом, вы можете настроить свою собственную сеть между машинами с подключенными сетевыми интерфейсами, локальными сетями, прямыми ссылками между серверами и т. д., вы можете использовать такое решение, как keepalived или кардиостимулятор. но настройку и настройку должны выполнять люди, знакомые с этим (мой опыт). это решение, при правильной настройке, работает полностью автоматически и надежно. IP-адреса и сервисы можно переключать вручную без потери пакетов; очень полезно для обновлений, обслуживания и перезагрузок.

оба решения по-прежнему являются HA-решениями для бедняков, но все же лучше, чем ничего. Дело в том, чтобы иметь решение, даже если оно как-то ограничено.


Кстати, вы просите не балансировку нагрузки, а аварийное переключение; только для записей :)