美文网首页高可用
haproxy详解(下)

haproxy详解(下)

作者: richard520 | 来源:发表于2016-06-14 17:03 被阅读1221次

    通过HAProxy的ACL规则实现智能负载均衡

    由于HAProxy可以工作在七层模型下, 因此,要实现HAProxy的强大功能,一定要使用强大灵活的ACL规则,通过ACL规则可以实现基于HAProxy的智能负载均衡系统。HAProxy通过ACL规则完成两种主要的功能,分别是:

    1)通过设置的ACL规则检查客户端请求是否合法。如果符合ACL规则要求,那么就将放行,反正,如果不符合规则,则直接中断请求。

    2)符合ACL规则要求的请求将被提交到后端的backend服务器集群,进而实现基于ACL规则的负载均衡。

    HAProxy中的ACL规则经常使用在frontend段中,使用方法如下:

    acl  自定义的acl名称  acl方法  -i  [匹配的路径或文件]

    其中:

    acl:是一个关键字,表示定义ACL规则的开始。后面需要跟上自定义的ACL名称 。

    acl方法:这个字段用来定义实现ACL的方法,HAProxy定义了很多ACL方法,经常使用的方法有hdr_reg(host)、hdr_dom(host)、hdr_beg(host)、url_sub、url_dir、path_beg、path_end等。

    -i:表示忽略大小写,后面需要跟上匹配的路径或文件或正则表达式。

    与ACL规则一起使用的HAProxy参数还有use_backend,use_backend后面需要跟上一个backend实例名,表示在满足ACL规则后去请求哪个backend实例,与use_backend对应的还有default_backend参数,它表示在没有满足ACL条件的时候默认使用哪个后端backend。

    下面列举几个常见的ACL规则例子:

    acl www_policy hdr_reg(host) -i ^(www.z.cn|z.cn)

    acl bbs_policy hdr_dom(host) -i  bbs.z.cn

    acl url_policy url_sub -i  buy_sid=

    use_backend server_wwwifwww_policy

    use_backend server_appifurl_policy

    use_backend server_bbsifbbs_policy

    default_backend server_cache

    一个动静分离的例子

    acl url_static path_beg -i/data/static/images/javascript/stylesheets#url开头为这些的静态内容

    acl url_static path_end -i .jpg .gif .png .css .js .html .ico#url结尾带为这些的静态内容

    use_backend staserifurl_static#如果静态内容符合url_static的条件,就调度到staser中的服务器

    default_backend             dyser#其他默认调度到dyser中的服务器

    相关文章

      网友评论

        本文标题:haproxy详解(下)

        本文链接:https://www.haomeiwen.com/subject/ljbgrttx.html