2009-03-23 3 views
3

Ищите лучшую практику здесь. Мы имеем дело с SSL-соединением на нашем уровне балансировки нагрузки, и, следовательно, все соединение с нашим балансировщиком нагрузки на наших веб-серверах составляет http. При этом мы не можем сказать, какое соединение клиент делает на нашем веб-сервере, поскольку все соединение осуществляется через http. В настоящее время у нас есть 2 решения: один должен иметь балансировщик нагрузки, чтобы добавить номер порта в строку URL, чтобы мы могли определить тип запроса (например, 80 для http и 443 для https). Другое решение заключается в том, что балансировщик нагрузки добавит специальный заголовок, когда он получит запрос https, чтобы веб-серверы знали тип соединения.Определите соединение SSL за балансиром нагрузки

Вы видите минусы в обоих решениях? Существует ли какая-либо передовая практика применения SSL на уровне балансировки нагрузки вместо уровня веб-сервера?

ответ

1

Я бы предпочел заголовок, я думаю. Добавление чего-то в URL-адреса создает возможность, сколь бы тонкой она ни была, что вы столкнетесь с параметром строки запроса, который приложение захочет использовать. Пользовательский заголовок будет проще.

Третьим вариантом может быть перенаправление ssl-соединений на другой порт, скажем, 8080, поэтому на задней панели вы знаете, что с портом 80-й связи были http, а с портами 8080 были начаты 443, даже хотя в этот момент они оба являются http.

1

Предлагаю использовать заголовок. Связанная концепция определяет IP-адрес клиента (для целей ведения журнала), так как все запросы на ваш веб-сервер появляются на балансировщике нагрузки. Здесь обычно используется заголовок x-forwarded-for.