SSL и балансировка нагрузки

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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам