Баланс загрузки https и веб-сокеты с липкими сессиями и NGINX
Я использую NGINX для балансировки нагрузки в режиме слипания перед приложением node.js, которое будет поддерживать http, ssl и websockets. Если я хочу, чтобы балансировщик нагрузки просто переадресовывал запросы на сервер node.js и всегда позволял серверу node.js обрабатывать любое завершение SSL, можно ли по-прежнему использовать липкие сеансы на основе файлов cookie или IP-адреса? Или мне нужно будет выполнить SSL-терминацию на уровне балансировщика нагрузки?
Если мне нужно выполнить SSL-завершение на уровне LB, нужно ли повторно шифровать запрос перед отправкой запроса на сервер node.js?
1 ответ
Если вы хотите, чтобы сервер обрабатывал завершение SSL, вы можете использовать:
- SSL-ID для балансировки нагрузки, но имеет ограничения, как здесь указано
- IP-адрес клиента, но имеет влияние, например, большие прокси
Если вы хотите обойти эти проблемы, вы можете прекратить сеанс SSL на LB и использовать куки для липкости. Если нет каких-либо ограничений с приложением (например, жестко закодированные ссылки), нет необходимости повторно шифровать.