haproxy详解(下)

通过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中的服务器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 互联网架构基础知识 一、网站常见架构 负载层 页面缓存层 web层 数据层 二、运维法则 缓存为王 尽量在前端(缓...
    魏镇坪阅读 10,323评论 0 9
  • 编译自: using ACLs and pattern extraction 文档版本:HAProxy versi...
    C86guli阅读 10,710评论 0 0
  • global log 127.0.0.1 local3 chroot /etc/haproxy pidfile /...
    c38480262d38阅读 5,871评论 0 0
  • 参考文档: 1.haproxy:http://www.haproxy.org/ 本文涉及haproxy的安装,并做...
    Netonline阅读 7,051评论 1 51
  • Haproxy是既可以工作在7层也能工作在4层的反代工具.Haproxy的功能: 路由HTTP请求到后端服务器,基...
    uangianlap阅读 5,592评论 0 1