Назад | Перейти на главную страницу

Haproxy перезаписывает хост, но отправляет исходный на серверы?

В настоящее время у меня nginx> 25 x nginx + fcgi

Основной nginx выполняет балансировку нагрузки, и каждый виртуальный хост слушает свой IP-адрес (разные продукты).

некоторые из IP-адресов получают разные имена хостов, и они перезаписываются обратно на внутренние серверы, например:

... http://some-random-url.com/path

GET / путь HTTP / 1.1

Хост: app1

X-Original-Host: some-random-url.com

X-Forwarded-For: 12.34.56.78

....

В настоящее время мы заменяем основной прокси-сервер на haproxy (улучшенные алгоритмы балансировки нагрузки), но я не могу понять, как добавить исходный хост. (Я не могу найти никакой документации по таким переменным, как $ host в nginx).

Я могу переписать URL-адрес так:

reqirep ^ Хост: Хост: \ app1

но «app1» по-прежнему требует исходного имени хоста для выполнения бизнес-логики.

Я думал о запуске каждого приложения на другом порту, но проблема в том, что мне нужен nginx httpchk для работы со всеми внутренними серверами и выполнение одного backend на приложение означает 10 приложений x 10 проверок = 10 проверок в секунду для каждого бэкенда (если данные журнала не лгали).

У кого-нибудь есть идея?

Просто оставь Host только заголовок - HAProxy обычно не приставает к нему, поэтому, если вы оставите его в покое, он будет передан на серверы приложений.