关于haproxy hdr_reg(host) 的一些解释

时间:2022-03-13 03:17:44
I've recently taken over an environment using HAProxy, and I'm attempting to learn the config and what it all means, but I'm 

finding some aspects of it are not clear. 

我最近在用Haproxy,我尝试学习配置,但是我发现有些方面不是很清楚
What does “acl cdn_name hdr_beg(host) -i foor.bar.com” mean in HAProxy's configuration?


     acl zjtest7_com   hdr_reg(host)  -i zjtest7.com
      use_backend zjtest7_com  if  zjtest7_com 
      


I think the above means that if host header begins with "foo.bar.com" then use the cdn cdn_name, but I'm not totally sure. Can 

somebody confirm for me 

我认为如果主机请求头是以"foo.bar.com" 开始 那么使用 cdn_name 


It's defining an ACL with the name cdn_name, with the criteria hdr_beg(host) -i foo.bar.com. The criteria basically means that the 

HTTP Host: header begins with "foo.bar.com" and it uses case-insensitive matching (the "-i" flag).

这是定义一个ACL 使用标准的 hdr_beg(host) -i foo.bar.com. 


标准基本意思是  HTTP Host:header 开始以"foo.bar.com"  那么它使用不区分大小写的匹配


但是这个实际上什么业不做,但是它会进一步用于你的配置,你可能会看到下面这样的东西

<something something> if cdn_name


如果客户请求使用一个  Host: header 是以"foo.bar.com" 开始,

HAproxy 会做任何 定义在<something something> 里