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的域名解析:
在"