Рейтинг:1

Haproxy устанавливает заголовок хоста для исходного сервера

флаг ug
Jay

Мы пытаемся установить заголовок хоста для исходного сервера, мы можем установить для серверной части, но мы используем имена по умолчанию в службах приложений Azure, и поэтому служба будет реагировать только на свое собственное имя хоста, например

http-request set-header Host example1.azurewebsites.net # для исходного сервера 1

http-request set-header Host example2.azurewebsites.net # для исходного сервера 2

Однако не вижу способа установить это на самом исходном сервере.

server svr_example1 xx.xx.xx.xx:443 id 10 weight 10 maxconn 25 cookie exa1 проверить ssl проверить нет

server svr_example2 xx.xx.xx.xx:443 id 10 weight 10 maxconn 25 cookie exa1 проверить ssl проверить нет

Что-то вроде

server svr_example1 xx.xx.xx.xx:443 id 10 weight 10 maxconn 25 cookie exa1 check ssl verify none http-request set-header Host example1.azurewebsites.net

server svr_example2 xx.xx.xx.xx:443 id 11 weight 10 maxconn 25 cookie exa1 check ssl verify none http-request set-header Host example2.azurewebsites.net

Использование haproxy версии 1.8.28

Рейтинг:0
флаг cz

Это отдельные директивы, и вы должны поместить их в отдельные строки, например:

серверная часть svr_example1
        server svr_example1 xx.xx.xx.xx:443 id 10 weight 10 maxconn 25 cookie exa1 проверить ssl проверить нет
        Узел set-header http-запроса example1.azurewebsites.net

Обратите внимание, что вы можете сделать это только тогда, когда HAProxy завершает TLS. Вы не можете сделать это, если вы проходите через TLS.

Jay avatar
флаг ug
Jay
Это не работает, так как нам нужно, чтобы исходные серверы имели разные имена хостов. серверная часть svr_example1 server svr_example1 xx.xx.xx.xx:443 id 10 weight 10 maxconn 25 cookie exa1 проверить ssl проверить нет Узел set-header http-запроса example1.azurewebsites.net server svr_example2 xx.xx.xx.xx:443 id 10 weight 10 maxconn 25 cookie exa1 проверить ssl проверить нет Узел set-header http-запроса example2.azurewebsites.net К сожалению, используется только последнее имя хоста, что приводит к ошибке 404 из веб-приложения Azure (домен должен совпадать).
Michael Hampton avatar
флаг cz
@Jay Вам придется использовать разные бэкэнды, и похоже, что вы действительно должны это делать в любом случае.
Jay avatar
флаг ug
Jay
Мы бы сделали это, если бы могли, но со стороны FE они используют одно и то же доменное имя, и только из-за того, как настроены службы приложений Azure, нам нужно предоставить другой заголовок хоста.
Michael Hampton avatar
флаг cz
@Jay https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-custom-domain
Рейтинг:0
флаг ug
Jay

Просто для обновления в конечном итоге реализовал предложение @Michael H с изюминкой, используя 2 бэкэнда, каждый со своим исходным сервером и информацией заголовка, а затем во внешнем интерфейсе, используя nbsrv, чтобы решить, действителен ли BE, и принять решение оттуда.

    acl beExampleDead1 nbsrv(S_be_Example1) lt 1
    acl beExampleDead2 nbsrv(S_be_Example1) lt 1

А затем используйте acl как часть правила, чтобы выбрать серверную часть.

Джей

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.