在 HAProxy 中基于每个服务器设置自定义 Header

Setting Custom Header on a per server basis in HAProxy

我需要使用 HAProxy 1.7 对第 3 方服务进行负载平衡。每个服务器都需要唯一的基本身份验证 Headers。我正在寻找一种类似于下面的方法,我可以在后端服务器之间 "roundrobin",但每个服务器都需要不同的 HTTP header:

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)。

我实施了以下解决方案以允许自定义 headers 为每个负载平衡的服务器。

frontend http-in
    bind *:80
    use_backend proxy

backend proxy
    balance roundrobin
    server url1-proxy 0.0.0.0:8080
    server url2-proxy 0.0.0.0:8081

listen url1-proxy
    bind *:8080
    reqidel '^Authorization:.*'
    reqadd 'Authorization: Basic blahblahblah'
    server url1 asdf.example.com:8080 check ssl verify none

listen url2-proxy
    bind *:8081
    reqidel '^Authorization:.*'
    reqadd 'Authorization: Basic blah2blah2blah2'
    server url2 asdf.example.com:8081 check ssl verify none