Почему конфигурация балансировщиков нагрузки уровня 7 не требует изменений конфигурации клиента?
Например, для haproxy
(уровень 7) балансировки нагрузки, вам нужно только настроить "реальные серверы" или "бэкэнды" за VIP (то есть, IP-адрес кластера). Например:
listen smtp 192.168.3.10:25
mode tcp
balance roundrobin
server smtp1 192.168.3.1:25 check
server smtp1 192.168.3.2:25 check
Однако с lvs
(слой 4), мне нужно либо:
- Установить
lvs
машина как роутер для реализации "NAT Routing" lvs
у машины и бэкэндов есть VIP, настроенный с некоторыми модами ARP на бэкэндах
Как балансировке нагрузки уровня 7 удается это сделать без более сложной конфигурации? Я неправильно понимаю или упускаю что-то фундаментальное здесь?
1 ответ
С LVS ваш сетевой трафик по существу идет от клиента непосредственно к вашему внутреннему серверу. Вовлечение третьего хоста (полупрозрачно) здесь не является нормальной сетевой конфигурацией, поэтому его довольно сложно реализовать.
С помощью haproxy ваш сетевой трафик передается от клиента к haproxy, а затем через haproxy на сервер. Что касается сервера, то haproxy - это просто еще один клиент. Это нормальная сетевая настройка, поэтому нет необходимости в настройке сетевого уровня (хотя есть сложность 7-го уровня, например, заголовки X-Forwarded-For). Это также означает, что ваш haproxy-компьютер является SPOF и должен иметь возможность обрабатывать весь трафик на ваш сайт.