首页 > 代码库 > haproxy基于ACL的动静分离

haproxy基于ACL的动静分离

acl 语法:

acl  <acl_name>  <criterion> [flags] [operator] <value>

acl_name:自定义的acl名称,区分大小写,只能包含、字母、数字、"-"、 "_"  、":"  、 "."

criterion:检查条件

flag:标志位,例如:

     -i:不区分大小写

operation:操作符,做数值比较,例如:eq(=)、ge(>=)、gt(>)、le(<=)、lt(<)


value:指定的值。可以是数值,也可是字符串。

数据类型为int时

例如: 1024:65535

数据类型为string时:

支持-i选项

支持正则表达式

支持IP address and networks


检查标准:

dst <ip_address> :目标地址

dst_port <integer>:目标端口

src <ip_address>:源地址

src_port <integer>:源端口




acl基于tcp做4层访问控制

tcp-request content accept [{if | unless} condition ]
tcp-request content accept reject

只能在frontend、listen区段中定义


例如:

acl  goodguys  src 10.0.0.0/24
tcp-request content accept if googuys
tcp-request content accept reject

解释:只允许10.0.0.0/24网段的用户访问,其他的都拒绝


例如:

listen statistics 
    bind *:8010
    stats enable
    stats uri /haadmin?stats
    stats auth admin:admin
    stats admin if TRUE
    acl whitelist  src 172.16.0.0/16
    acl blacklist src 172.16.100.10/24
    tcp-request content reject if blacklist
    tcp-request content accept if whitelist
    tcp-request content reject

    





本文出自 “zengestudy” 博客,请务必保留此出处http://zengestudy.blog.51cto.com/1702365/1913949

haproxy基于ACL的动静分离