【发布时间】:2017-03-10 02:25:37
【问题描述】:
我需要使用 HAProxy 1.7 对第 3 方服务进行负载平衡。每个服务器都需要唯一的基本身份验证标头。我正在寻找与下面类似的方法,我可以在后端服务器之间“循环”,但每个服务器都需要不同的 HTTP 标头:
frontend http-in
bind *:80
use_backend servs
backend servs
reqidel '^Authorization:.*'
reqadd 'Authorization: Basic blahblahblah'
server url1 asdf.example.com:8080 check ssl verify none
reqidel '^Authorization:.*'
reqadd 'Authorization: Basic blah2blah2blah2'
server url2 asdf.example.com:8081 check ssl verify none
这种方法只使用第一个服务器 (url1)。
【问题讨论】:
-
您的问题是如何在 2 台服务器之间轮询?
-
它是如何在两台服务器之间进行轮询,但为每台服务器设置“授权”标头为不同的值。
-
看看
hdr()函数。这不完全是你想要的,但它是一个开始。如果您可以使用例如第二个虚拟标头,甚至可能就足够了。 -
我需要的是一个可以应用于每个服务器的条件语句。类似于 ACL,但单独应用于循环后端中的每个服务器。我没有遇到过这种类型的解决方案,所以可能无法达到我想象的解决方案。
-
你能发送另一个自定义标题吗?然后您可以使用
hdr()路由到正确的服务器。因此,假设您创建了 2 个额外的自定义标头,其中一个用于服务器 1,另一个用于服务器 2。授权标头可以与这些附加标头结合使用。
标签: haproxy