HAProxy 如何为 map_dom 算出 SSL_FC_SNI
How does HAProxy figure out SSL_FC_SNI for map_dom
我有一个使用地图的 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
的后端
由于我使用的是 map_dom
,它会根据点 (.) 拆分域并进行标记匹配,无论哪个是第一个匹配项,它 returns 就是后端。
此处 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
将解决此问题,因为 map 会执行严格的字符串比较。
我有一个使用地图的 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
由于我使用的是 map_dom
,它会根据点 (.) 拆分域并进行标记匹配,无论哪个是第一个匹配项,它 returns 就是后端。
此处 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
将解决此问题,因为 map 会执行严格的字符串比较。