我使用地图进行haproxy配置。
HAProxy配置文件包含以下行:
%[ssl_fc_sni,lower,map_dom(/etc/haproxy/domain2backend.map)]
在domain2backend.map中,我有以下条目:
dp.stg.corp.mydom.com dp_10293
/dp dp_10293
dp.admin.stg.corp.mydom.com dp_10345
现在,当我访问https://dp.admin.stg.corp.mydom.com/index.html
时,它正在指示我dp_10293
后端。但是,使用map的简单完整字符串匹配(/etc/haproxy/domain2backend.map)可以解决问题,并将它指向正确的后端dp_10345
。我拥有的证书是通配符证书* .mydom.com
那么map_dom如何比较域名以及如何将dp.admin.stg.corp.mydom.com
的请求指向dp.stg.corp.mydom.com
的后端
答案 0 :(得分:0)
由于我正在使用map_dom
,它会根据点(。)拆分域并进行令牌匹配,并且这是第一个匹配,它会返回该后端。
这里dp.admin.stg.corp.mydom.com匹配
中的任何一个dp.admin.stg.corp.mydom.com
/dp
/admin
/stg
/corp
/mydom
/com
/dp.admin
/dp.admin.stg
/dp.admin.stg.corp
/dp.admin.stg.corp.mydom
/admin.stg.corp.mydom.com
/stg.corp.mydom.com
/corp.mydom.com
/mydom.com
在我的情况下,因为我有/ dp的条目,所以它被路由到后端dp_10345
。
将map_dom
更改为map
会修复它,因为地图会进行严格的字符串比较。