SSL и балансировка нагрузки - PullRequest
17 голосов
/ 06 октября 2010

Как SSL влияет на работу балансировки нагрузки?Я знаю, что вам нужно использовать липкие сеансы, если вы решили не сохранять информацию о сеансе в БД или вне процесса, но как это влияет на SSL?

1 Ответ

36 голосов
/ 07 октября 2010

Просто чтобы уточнить, сеансы SSL / TLS не имеют ничего общего с сеансами HTTP. (Некоторые реализации могут использовать идентификатор сеанса SSL / TLS в качестве основы для поддержки сеансов HTTP, но это плохой дизайн, поскольку SSL / TLS может полностью изменять сеансы независимо от того, что делает HTTP).

С точки зрения распределения нагрузки вы получаете несколько вариантов:

  • Используйте балансировщик нагрузки, который является вашей конечной точкой SSL / TLS. В этом случае балансировка нагрузки будет выполняться на уровне HTTP: клиент подключается к балансировщику нагрузки, а балансировщик нагрузки разворачивает соединение SSL / TLS для передачи содержимого HTTP (затем в открытом виде) своим работникам.

  • Используйте балансировщик нагрузки на уровне TCP / IP, который перенаправляет все TCP-соединение непосредственно на рабочий узел. В этом случае каждый рабочий узел должен иметь сертификат и закрытый ключ (что не обязательно является проблемой, если они администрируются последовательно). Используя эту технику, балансировщик нагрузки вообще не выполняет никакой обработки HTTP (поскольку он не смотрит в соединение SSL / TLS): с одной стороны, это уменьшает обработку, выполняемую самим балансировщиком нагрузки, с другой С другой стороны, это может помешать отправке на конкретный рабочий узел, например, на основе структуры URL. Оба метода имеют свои преимущества и недостатки.

...