case 1
测试hdr_beg(host) 的情况
acl zjtest7_com hdr_beg(host) -i zjtest7.com
use_backend zjtest7_com if zjtest7_com
acl api_zjtest7_com hdr_beg(host) -i api.zjtest7.com
use_backend api_zjtest7_com if api_zjtest7_com
backend zjtest7_com
mode http
server apphost_1 192.168.32.101:3000 check inter 2000 fall 3
backend api_zjtest7_com
mode http
server apphost_1 192.168.32.76:8001 check inter 2000 fall 3
zjtest7-haproxy:/root# curl zjtest7.com/scan/test
welcome wxpod999zjtest7-haproxy:/root#
zjtest7-haproxy:/root# curl api.zjtest7.com:8001/scan/index.html
abc20161216123dasd-9ad-0-a09
此时没问题
测试 hdr_reg(host) 的情况:
acl zjtest7_com hdr_reg(host) -i zjtest7.com
use_backend zjtest7_com if zjtest7_com
acl api_zjtest7_com hdr_reg(host) -i api.zjtest7.com
use_backend api_zjtest7_com if api_zjtest7_com
backend zjtest7_com
mode http
server apphost_1 192.168.32.101:3000 check inter 2000 fall 3
backend api_zjtest7_com
mode http
server apphost_1 192.168.32.76:8001 check inter 2000 fall 3
zjtest7-haproxy:/root# curl zjtest7.com/scan/test
welcome wxpod999zjtest7-haproxy:/root#
zjtest7-haproxy:/root# curl api.zjtest7.com:8001/scan/index.html
abc20161216123dasd-9ad-0-a09
一样没有问题;
换成 hdr_dom(host)
acl zjtest7_com hdr_dom(host) -i zjtest7.com
use_backend zjtest7_com if zjtest7_com
acl api_zjtest7_com hdr_dom(host) -i api.zjtest7.com
use_backend api_zjtest7_com if api_zjtest7_com
zjtest7-haproxy:/root# curl zjtest7.com/scan/test
welcome wxpod999zjtest7-haproxy:/root#
zjtest7-haproxy:/root#
zjtest7-haproxy:/root#
zjtest7-haproxy:/root# curl api.zjtest7.com:8001/scan/index.html
abc20161216123dasd-9ad-0-a09
acl monitor hdr_beg(host) -i monitor.test.com #定义ACL名称,对应的请求的主机头是monitor.test.com
acl bbs hdr_reg(host) -i ^(bbs.test.com|forum.test.com) #使用正则匹配