Есть ли способ получить доступ к определенному серверу с именем хоста в циклической установке?

8

У меня есть кластер веб-серверов Apache, использующий циклический перебор для примитивной балансировки нагрузки. Есть ли способ, чтобы firefox или chrome запрашивали имя сервера с определенного IP?

Если вы просто введете http://1.2.3.4 , он не получит ServerName, а если вы введете http: // servername , вы сможете получить любой из серверов.

Брайан Эйджи
источник
Является ли циклический перебор типом липкого сеанса соединения с внутренним сервером?
Джангофан
2
Ответы Дмурати и Эдуардо точные.
Hyppy
@djangofan: Нет - серверы настроены полностью параллельно по отношению к сеансу. Если один из них падает, любой другой сервер может возобновить транзакцию.
Брайан Эйджи

Ответы:

10

Я предполагаю, что вы имеете в виду DNS Round-Robin. В этом случае основной способ, который я могу придумать, это просто отредактировать ваш / etc / hosts так, чтобы он указывал на любой сервер, который вы хотите попробовать в конкретный момент:

1.2.3.4 servername

Возможно, вам придется перезапустить браузер, чтобы убедиться, что он не использует кэшированный ответ DNS.

Также вы можете добавить дополнительные записи в свой DNS, такие как имя_сервера-001, -002 и т. Д., И настроить свои бэкэнды так, чтобы они принимали эти имена в качестве ServerAlias ​​для VirtualHost, к которому вы стремитесь. Конечно, вы также можете просто установить VirtualHost по умолчанию, чтобы он работал с использованием IP, и пропустить этот последний шаг, предполагая, что ваше приложение не предполагает, что оно работает с определенным именем.

Изменить: Это может быть полезно - это расширение Firefox, которое позволяет вам изменять заголовки запроса. Возможно, вы могли бы изменить, Hostчтобы посетить бэкэнды, непосредственно указывая ServerName. Я не пробовал это все же.

https://addons.mozilla.org/en-us/firefox/addon/modify-headers/

Эдуардо Иванец
источник
11

Вам нужно изменить заголовок HTTP Host.

Видеть:

http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

Я делаю это с помощью curl:

curl -H host:servername http://1.2.3.4

Вам могут пригодиться следующие плагины:

https://addons.mozilla.org/en-us/firefox/addon/modify-headers/

https://addons.mozilla.org/en-US/firefox/addon/tamper-data/eula/33806

dmourati
источник
Я отредактировал свой пост с тем же URL, прежде чем увидел ваш вклад! Надеюсь, ты не возражаешь. +1 за curl.
Эдуардо Иванец
@ Эдуардо, совсем нет. В последнее время я возился с этой проблемой и сам использовал метод завитков. Не удалось найти ничего полезного для OP на передней панели.
dmourati
Определенно +1 за кончик локона. Спасибо!
Брайан Эйджи