有人可以建议我必须在nbsrv表达式中更改以使其正常工作:
frontend webfarm
bind 11.22.33.44:80
...
acl MAIN_not_enough_capacity nbsrv([%[req.hdr(host),lower,map(/etc/haproxy/backend.map,bk_default)]]) eq 0
http-request redirect code 301 location http://global-swajm.example.com if MAIN_not_enough_capacity
use_backend %[req.hdr(host),lower,map(/etc/haproxy/backend.map,bk_default)]
这个想法是根据标题中的主机来从地图文件中获取正确的后端名称。 如果此后端中没有可用的服务器,请求将被重定向到另一个haproxy(在另一个DC中)。
use_backend工作正常:
use_backend %[req.hdr(host),lower,map(/etc/haproxy/backend.map,bk_default)]
但我不知道如何修改nbsrv的表达式以传递后端名称:
nbsrv([%[req.hdr(host),lower,map(/etc/haproxy/backend.map,bk_default)]])