В настоящее время у меня 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 обычно не приставает к нему, поэтому, если вы оставите его в покое, он будет передан на серверы приложений.