使用haproxy的ACL实现基于文件后缀名的动静分离 
1 ACL 
访问控制列表(ACL,Access Control Lists)是一种基于包过滤的访问控制技术,它可以根据设定的条件对经过服务器传输的数据包进行过滤(条件匹配),即对接收到的报文进行匹配和过滤,基于请求报文头部中的源地址、源端口、目标地址、目标端口、请求方法、URL、文件后缀等信息内容进行匹配并执行进一步操作,比如允许其通过或丢弃。  
1.1 ACL配置选项 
acl 	<aclname>	 <criterion>	 [flags]	 [operator]		 [<value>]
acl 	   名称 		 匹配规范		 匹配模式	   具体操作符	   操作对象类型
ACL-Name
小写,比如:my_acl和My_Acl就是两个完全不同的acl
ACL-criterion
定义ACL匹配规范,即:判断条件
path_end : suffix match 
ACL-flags
-i 不区分大小写
  
1.2 ACL基于文件后缀名实现动静分离 
[root@haproxy ~]
frontend ha1_web_80
    bind 10.0.0.7:80
    balance roundrobin
    acl acl_static path_end -i  .jpg .jpeg .png .gif .css .js .html
    acl acl_php path_end -i     .php
    use_backend static_hosts          if acl_static
    use_backend php_hosts             if acl_php
backend static_hosts
    server rs2 10.0.0.27:80 check inter 3000 fall 2 rise 5
backend php_hosts
    server rs1 10.0.0.17:80 check inter 3000 fall 2 rise 5
[root@haproxy ~]
[root@rs1 html]
/var/www/html
[root@rs1 html]
[root@rs2 html]
/var/www/html
[root@rs2 html]
[root@client ~]
10.0.0.27
[root@client ~]
10.0.0.17
 
                
                
                
        
        
    
  
 
 |