Управляет ли программный балансировщик нагрузки двусторонним SSL-соединением? Если так, то как? - PullRequest
1 голос
/ 13 февраля 2009

Понятия не имею, как работает программный или аппаратный балансировщик нагрузки. Я предполагаю, что аппаратный балансировщик нагрузки является в основном коммутатором и на основе некоторого алгоритма решает, на какой узел переключаться для входящего запроса. На фронте балансировки нагрузки программного обеспечения, я полагаю, программное обеспечение подхватывает узел и использует обратное подключение прокси к нему. В таком случае двухсторонний SSL не будет работать, поскольку у балансировщика нагрузки не может быть личного ключа клиента.

Опять же, я не знаю, как работает программный балансировщик нагрузки, но так как моему приложению потребуется балансировщик нагрузки и поскольку приложение использует двухстороннее соединение SSL, я хотел знать, как программный балансировщик нагрузки заботится о SSL-соединение.

Ответы [ 3 ]

2 голосов
/ 13 февраля 2009

Вообще говоря, программный балансировщик нагрузки заметит, что есть новый входящий запрос на соединение, оценит нагрузку на доступные машины и назначит новый запрос наиболее подходящей машине. Когда есть основанная на сеансе услуга, это соединение будет длиться в течение всего сеанса; изменение баланса произойдет, только если сервер выйдет из строя, и, вероятно, установит новые соединения в новой сбалансированной конфигурации.

Итак, как подразумевал Джон, сеанс SSL будет установлен с сервером и будет продолжаться с этим сервером до тех пор, пока сеанс не завершится.

Если вы хотите маршрутизировать соединения более динамично, то может быть так, что сеанс SSL должен быть прерван (расшифрован) перед программным обеспечением, которое динамически отправляет запросы на разные серверы.

Все это возможно - они не обязательно эффективны или реализованы.

2 голосов
/ 16 февраля 2009

Нет, SSL работает с балансировщиком нагрузки. Обычно они работают на уровне TCP, поэтому клиенты подключаются к IP-адресу LB, но это NAT для подключений к реальным серверам. Соединение сохраняется к тому же реальному серверу в течение всего срока его службы, но если тот же клиент создает другой, он может (и обычно будет) переходить на другой сервер.

Для HTTPS это работает нормально, за исключением того, что если у вас есть веб-сервер, который поддерживает кэширование сеансов SSL, то кэш сеансов SSL будет потерян, если клиент вернется на другой сервер. На практике это не большая проблема. Конечно, HTTP keep-alive сессии не затрагиваются, потому что они являются одним TCP-соединением, поэтому они остаются на одном реальном сервере.

0 голосов
/ 13 февраля 2009

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

Итак, если пользователь нажимает на ваш балансировщик нагрузки, он отправляет его на определенный сервер, и этот сервер согласовывает SSL. Пользователь будет постоянно общаться с этим сервером до истечения срока его сеанса. В этот момент он снова нажмет на балансировщик нагрузки.

...