Я столкнулся с ситуацией, которую не могу понять. У нас есть межсетевой экран Fortigate, который мы позволили выполнить балансировку нагрузки на двух внутренних веб-серверах Apache. DNS-имя затем сопоставляется с виртуальным IP-адресом на балансировщике нагрузки.
Как и ожидалось, когда вы переходите на DNS- имя / URL (например, www.something.com), балансировщик нагрузки отображает страницу с одного из внутренних веб-серверов Apache. URL в браузере остается www.something.com . Насколько я понимаю, балансировщик нагрузки в этом случае просто пересылает пакеты между браузером и Apache, всегда оставаясь в пути.
Однако, если я перехожу к IP-адресу , на который сопоставлен DNS, то балансировщик нагрузки возвращает HTTP 302 Found с заголовком Location, установленным на URL-адрес DNS одного из Apache. URL-адрес в браузере изменится на внутренний сервер DNS.
Почему балансировщик нагрузки перенаправляется при запросе по IP, но правильно перенаправляет в пути при запросе по DNS-имени.
Прочитав HTTP-балансировку нагрузки на хосте в документе Fortigate Load Balancing , я могу увидеть, как у вас может быть нетипичная конфигурация балансировки нагрузки, которая может привести к тому, что вы описываете. Однако, без части вашей конфигурации, мы не можем быть уверены, что это так для вас.
Fortigate FortiOS позволяет создавать виртуальный сервер, связанный с реальными серверами, каждый из которых имеет свою конфигурацию заголовка узла . Если какие-либо запросы соответствуют VIP вашего Виртуального сервера, запросы с балансировкой нагрузки будут отправляться только тем реальным серверам, которые соответствуют этому
host header
. Самая важная часть, которая хорошо объясняет ваши симптомы, состоит в том, что один из реальных серверов может опустить заголовок узла, чтобы он совпадал с любым заголовком узла.Реальный сервер без заголовка узла мог быть настроен как своего рода «ловушка», которая попадает на сайт, который выполняет перенаправление.
Используя приведенный ниже пример, только 1-й и 2-й серверы обрабатывают трафик, соответствующий предпочитаемому DNS-имени, через заголовок узла, но 3-й сервер берет все, что соответствует всем другим заголовкам хоста, включая сам DNS DNS, и отправляет на сайт, который может выполнить перенаправление ,
Я предполагаю, что балансировка нагрузки брандмауэра могла бы выполнять само перенаправление, но мы не можем сказать с ограниченной предоставленной информацией.
источник