寻找合肥网站建设,免费活动策划方案的网站,投资网站源码,dz网站如何搬家一、ACL介绍
访问控制列表ACL#xff0c;Access Control Lists#xff09; 是一种基于包过滤的访问控制技术 它可以根据设定的条件对经过服务器传输的数据包进行过滤(条件匹配)即对接收到的报文进行匹配和过 滤#xff0c;基于请求报文头部中的源地址、源端口、目标地址、目…一、ACL介绍
访问控制列表ACLAccess Control Lists 是一种基于包过滤的访问控制技术 它可以根据设定的条件对经过服务器传输的数据包进行过滤(条件匹配)即对接收到的报文进行匹配和过 滤基于请求报文头部中的源地址、源端口、目标地址、目标端口、请求方法、URL、文件后缀等信息内 容进行匹配并执行进一步操作比如允许其通过或丢弃。
1、ACL配置选项 2、ACL-Name 名称 acl test path_end -m sub /a #ACL名称可以使用大字母A-Z、小写字母a-z、数字0-9、冒号、点.、中横线和下划线并且严格区分大 小写比如:my_acl和My_Acl就是两个完全不同的acl5.8.1.2 ACL-criterion 3、ACL-criterion 匹配规范 定义ACL匹配规范即判断条件 hdr string提取在一个HTTP请求报文的首部 hdr ([name [, occ]])完全匹配字符串,header的指定信息 表示在多值中使用的值的出 现次数 hdr_beg ([name [, occ]])前缀匹配header中指定匹配内容的begin hdr_end ([name [, occ]])后缀匹配header中指定匹配内容end hdr_dom ([name [, occ]])域匹配header中的domhost hdr_dir ([name [, occ]])路径匹配header的uri路径 hdr_len ([name [, occ]])长度匹配header的长度匹配 hdr_reg ([name [, occ]])正则表达式匹配自定义表达式(regex)模糊匹配 hdr_sub ([name [, occ]])子串匹配header中的uri模糊匹配 模糊匹配c 报文中a/b/c也会匹 配 4、ACL-flags匹配模式 -i 不区分大小写 -m 使用指定的正则表达式匹配方法 -n 不做DNS解析 -u 禁止acl重名否则多个同名ACL匹配或关系 5、ACL-operator具体操作符 整数比较eq、ge、gt、le、lt 字符比较 - exact match (-m str) :字符串必须完全匹配模式 - substring match (-m sub) :在提取的字符串中查找模式如果其中任何一个被发现ACL将匹配 - prefix match (-m beg) :在提取的字符串首部中查找模式如果其中任何一个被发现ACL将匹配 - suffix match (-m end) :将模式与提取字符串的尾部进行比较如果其中任何一个匹配则ACL进行 匹配 - subdir match (-m dir) :查看提取出来的用斜线分隔“/的字符串如其中任一个匹配则ACL 进行匹配 - domain match (-m dom) :查找提取的用点“.分隔字符串如果其中任何一个匹配则ACL进行 匹配 6、ACL-value操作对象 The ACL engine can match these types against patterns of the following types : - Boolean #布尔值 - integer or integer range #整数或整数范围比如用于匹配端口范围 - IP address / network #IP地址或IP范围, 192.168.0.1 ,192.168.0.1/24 - string-- www.timinglee.org exact #精确比较 substring #子串 suffix #后缀比较 prefix #前缀比较 subdir #路径 /wp-includes/js/jquery/jquery.js domain #域名www.timinglee.org - regular expression #正则表达式 - hex block #16进制 7、多个ACL的组合调用方式
多个ACL的逻辑处理 与隐式默认使用 或使用“or 或 “||表示 否定使用 ! 表示 多个ACL调用方式 #示例 if valid_src valid_port #与关系ACL中A和B都要满足为true默认为与 if invalid_src || invalid_port #或ACL中A或者B满足一个为true if ! invalid_src #非取反不满足ACL才为true 二、域名匹配
1、编辑haproxy.cfg配置文件 vim /etc/haproxy/haproxy.cfg 重启服务 systemctl restart haproxy.service 2、测试结果
测试主机作本地解析 vim /etc/hosts 测试结果 三、基于源IP或子网调度访问
将指定的源地址调度至指定的web服务器组。
1、编辑haproxy.cfg配置文件 vim /etc/haproxy/haproxy.cfg 重启服务 systemctl restart haproxy.service 2、测试结果 四、基于源地址的访问控制
拒绝指定IP或者IP范围访问
1、编辑haproxy.cfg配置文件 vim /etc/haproxy/haproxy.cfg 重启服务 systemctl restart haproxy.service 2、测试 五、匹配浏览器类型
匹配客户端浏览器将不同类型的浏览器调动至不同的服务器组
1、编辑haproxy.cfg配置文件 vim /etc/haproxy/haproxy.cfg 重启服务 systemctl restart haproxy.service 2、测试 浏览器中测试跳转到百度页面 六、基于文件后缀名实现动静分离
1、编辑haproxy.cfg配置文件 vim /etc/haproxy/haproxy.cfg 重启服务 systemctl restart haproxy.service 2、测试 [rootwebserver1 ~]# echo css 172.25.254.10 /usr/share/nginx/html/index.php [rootwebserver2 ~]# echo php 172.25.254.20 /var/www/html/index.css [rootnode10 ~]# curl 172.25.254.100/index.php php 172.25.254.10 [rootnode10 ~]# curl 172.25.254.100/index.css css 172.25.254.20 七、匹配访问路径实现动静分离
1、编辑haproxy.cfg配置文件 重启服务 systemctl restart haproxy.service 2、测试 [rootwebserver1 ~]# mkdir /usr/share/nginx/html/static [rootwebserver1 ~]# echo static 172.25.254.10 /usr/share/nginx/html/static/index.html [rootwebserver2 ~]# mkdir /var/www/html/api/ [rootwebserver2 ~]# echo api 172.25.254.20 /var/www/html/api/index.html [rootwebserver1 ~]# curl 172.25.254.100/api/ api 172.25.254.20 [rootwebserver1 ~]# curl 172.25.254.100/static/ static 172.25.254.10