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