Определите SSL-соединение за балансировщиком нагрузки - PullRequest
3 голосов
/ 24 марта 2009

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

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

Ответы [ 2 ]

1 голос
/ 24 марта 2009

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

1 голос
/ 24 марта 2009

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

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

...