Баланс загрузки 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 и использовать куки для липкости. Если нет каких-либо ограничений с приложением (например, жестко закодированные ссылки), нет необходимости повторно шифровать.

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