Haproxy 重写主机但将原始主机发送到服务器?

Haproxy 重写主机但将原始主机发送到服务器?

目前,我有 nginx > 25 x nginx + fcgi

主 nginx 执行负载平衡,每个虚拟主机监听不同的 ip(不同的产品)。

一些 ip 接收不同的主机名,并且它们被重写回后端服务器,例如:

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

获取/路径 HTTP/1.1

主机:app1

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

X-转发-针对:12.34.56.78

....

我们目前正在用 haproxy(更好的负载平衡算法)替换主代理,但我不知道如何附加原始主机。(我找不到有关 nginx 的 $host 等变量的任何文档)。

我可以像这样重写 URL:

reqirep ^Host: 主机:\ app1

但“app1”仍然需要原始主机名来执行业务逻辑。

我考虑过在不同的端口上运行每个应用程序,但问题是我希望 nginxhttpchk适用于所有后端服务器,并且backend每个应用程序执行一次意味着 10 个应用程序 x 10 次检查 = 每秒对每个后端进行 10 次检查(除非日志数据撒谎)。

有人有想法吗?

答案1

只需将Host标头保留原样 - HAProxy 通常不会骚扰它,因此如果您将其保留原样,它将被传递到您的应用程序服务器。

相关内容