1. ACL:访问控制列表(ACL,Access Control Lists)是一种基于包过滤的访问控制技术,它可以根据设定的条件对经过服务器传输的数据包进行过滤(条件匹配),即对接收到的报文进行匹配和过滤,基于请求报文头部中的源地址、源端口、目标地址、目标端口、请求方法、URL、文件后缀等信息内容进行匹配并执行进一步操作,比如允许其通过或丢弃。
2. Haproxy中ACL的配置语法及参数:
- acl语法:
- acl <aclname> <criterion> [flags] [operator] [<value>]
- acl 该条acl规则的名称 匹配规范 匹配模式 具体操作符 操作对象类型
3. 环境规划:
| 主机名 | 主机地址 | 角色 |
| node1 | 192.168.188.11 | 负载均衡调度器 |
| node2 | 192.168.188.12 | 后端服务器1 |
| node3 | 192.168.188.13 | 后端服务器2 |
| node4 | 192.168.188.14 | 测试服务器 |
4. ACL示例--域名匹配:
1>. 配置Haproxy配置文件,这里使用子配置文件的方式配置:
- [root@node1 ~]# cd /etc/haproxy/conf.d/
-
- [root@node1 conf.d]# vim acltest1.cfg
-
- frontend acltest1 ##前端配置
- bind :80
- mode http
- log global
-
- ###########定义acl规则#########
- acl domacl_one hdr_dom(host) -i xian.yunjisuan.com
- acl domacl_two hdr_dom(host) -i chengdu.yunjisuan.com
-
- ##########调用acl规则#########
- use_backend domcalone_host if domacl_one
- use_backend domcaltwo_host if domacl_two
- default_backend domcalone_host
-
- ############配置后端##########
- backend domcalone_host
- mode http
- server web1 192.168.188.12:80 check
-
- backend domcaltwo_host
- mode http
- server web2 192.168.188.13:80 check
-
- ##重启haproxy
- [root@node1 conf.d]# systemctl restart haproxy.service
解析配置:1. 当访问域名为" xian.yunjisuan.com "的主机时,会匹配到" domacl_one "该条acl规则;如果该条acl规则成立,则调用名为" domcalone_host "的后端配置。
2. 当访问域名为" chengdu.yunjisuan.com "的主机时,会匹配到" domacl_two "该条acl规则;如果该条acl规则成立,则调用名为" domcaltwo_host "的后端配置。
3. 如果不满足以上两条acl,则默认调用名为" domcaltwo_host "的后端配置。
2>. 配置windows的域名解析:
在" <