HAProxy 是否支持基于路径的路由的域名到后端映射。
目前它支持 vhost 的地图:
frontend xyz
<other_lines>
use_backend backend1 if { hdr(Host) -i myapp.domain1.com }
use_backend backend2 if { hdr(Host) -i myapp.domain2.com }
可以使用地图重写为:
frontend xyz
<other_lines>
use_backend %[req.hdr(host),lower,map_dom(/path/to/map,default)]
地图文件内容如下:
#domainname backendname
myapp.domain1.com backend1
myapp.domain2.com backend2
但是如果路由基于路径,如下例所示:
frontend xyz
acl host_server_myapp hdr(host) -i myapp.domain.com
acl path_path1 path_beg /path1
acl path_path2 path_beg /path2
use_backend backend1 if host_server_myapp path_path1
use_backend backend2 if host_server_myapp path_path2
是否可以为该用例进行映射?使用base
hdr(host) 可能会提供完整路径,但由于是字符串比较,因此它不具备域的灵活性base
。还有其他方法可以将其转换为 haproxy 映射吗?