Как я могу сказать, к какому серверу я был загрузкой, сбалансированной?

Я хочу протестировать некоторые изменения конфигурации к односторонней синхронизации между двумя серверами, которые находятся позади подсистемы балансировки нагрузки (это - вся "Облачная" инфраструктура Rackspace к вашему сведению). Проблема, которую я имею, состоит в том, что я не могу сказать, какой сервер я был загрузкой, сбалансированной к тому, потому что IP, который мне дают, всегда является IP подсистемы балансировки нагрузки.

Есть ли простое (или даже не очень просто) способ сказать, к какому серверу я был на самом деле направлен. Я идеально хотел бы что-то в браузере, потому что это означает, что нетехнические члены команды могут также сообщить о проблемах относительно легко, но любые идеи о лучших подходах к этому ценились бы.

Дополнительная информация: Оба сервера выполняют Apache, и подсистеме балансировки нагрузки настроили персистентность сессии.

8
задан 2 February 2015 в 13:14
2 ответа

Если вы хотите соблюдать осторожность, просто попросите веб-сервер идентифицировать себя в заголовке ответа Server: ( RFC 2616 Sec 14.38 ). Например, в Apache информация, возвращаемая в этом заголовке, управляется директивой ServerTokens . Затем нужно просто проверить заголовки ответов в Firebug , Chrome DevTools или временной шкале Safari Web Inspector .

Если вы хотите быть откровенным, Очевидно, вы можете заставить свое веб-приложение встраивать имя сервера в страницы, которые оно генерирует, как видимый текст. Вы также можете указать имя сервера в комментарии HTML, для чего потребуется просмотреть исходный код.

8
ответ дан 2 December 2019 в 22:58

Вы не указываете, какой протокол вы используете, поэтому я предполагаю, что мы говорим о https.

Каждый бэкэнд, вероятно, знает некоторую информацию о себе, которая однозначно идентифицирует этот бэкэнд. Это может быть имя хоста или одноадресный IP-адрес. Серверная часть может включать эту информацию в соответствующие места. Вы можете включить его в нижний колонтитул на каждой странице. Или, если вы считаете, что это слишком заметно, включите его только на те страницы, которые пользователи не посещают при обычных обстоятельствах. Любая страница с ошибкой (404, 500 и т. Д.) Всегда должна включать идентификацию серверной части.

Если ваш балансировщик нагрузки выполняет только балансировку нагрузки и не делает ничего другого, тогда вы завершаете https на сервере и всякий раз, когда устанавливается TCP-соединение. закрывается и клиент повторно подключается, существует вероятность того, что клиент будет перенаправлен на другой серверный процесс.

Балансировщик нагрузки может запомнить последний использованный серверный процесс для всех IP-адресов клиентов, замеченных в течение последнего часа, чтобы повторно использовать тот же серверный процесс. большую часть времени. Любая более подробная информация, такая как файлы cookie и идентификатор пользователя, будет недоступна для балансировщика нагрузки, поэтому он не может использовать ее для удержания пользователя на одном сервере.

Это означает, что любая идентификация того, какой серверный модуль использует следует воспринимать с некоторой долей скептицизма, поскольку пользователь мог перемещаться между бэкэндами между моментом, когда у него возникла проблема, и моментом, когда он узнал, какой бэкэнд он использовал. Но это по-прежнему ценная информация, поскольку в большинстве случаев она помогает быстрее найти нужные журналы.

2
ответ дан 2 December 2019 в 22:58

Теги

Похожие вопросы