前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >003.HAProxy ACL规则的智能负载均衡

003.HAProxy ACL规则的智能负载均衡

作者头像
木二
发布2019-07-26 09:55:11
8180
发布2019-07-26 09:55:11
举报
文章被收录于专栏:木二天空木二天空木二天空

一 简介

HAProxy可以工作在第七层模型,可通过ACL规则实现基于HAProxy的智能负载均衡系统,HAProxy通过ACL规则完成以下两种主要功能:

  • 通过ACL规则检查客户端请求是否合法,如果符合ACL规则,则放行;不符合ACL规则,则中断请求;
  • 符合ACL规则的请求被提交到后端服务器集群,进而实现基于ACL规则的负载均衡。

二 使用方法

2.1 语法

通常ACL规则在frontend部分使用,语法如下:

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

选项含义:

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

acl方法:定义实现acl的方法,常见的有:hdr_reg、hdr_dom、hdr_beg、url_sub、url_dir、path_beg、path_end等;

-i:表示忽略大小写,之后带上匹配的路径或正则表达式。

与ACL规则一起使用的HAProxy参数还有use_backend,use_backend带上一个backend实例名,表示在满足ACL规则后去请求哪个backend实例。

2.2 举例

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_www if www_policy

use_backend server_app if url_policy

use_backend server_bbs if bbs_policy

default_backend server_cache

解释:定义了www_policy、bbs_policy、url_policy三个ACL规则。

  • 第一条:表示如果客户端以www.z.cn或z.cn开头的域名发送请求,则此规则返回true;
  • 第二条:表示如果客户端以bbs.z.cn开头的域名发送请求,则此规则返回true;
  • 第三条:表示如果客户端在请求的RUL中包含“buy_sid=”字符串,则此规则返回true。
  • 第4-6条规则定义了当www_policy、bbs_policy、url_policy三个ACL规则返回true时需要调度到哪个后端。
  • 第四条:当用户的请求满足www_policy时,HAProxy会将用户请求直接发往名为server_www的后端;
  • 以此类推,当用户的请求不满足任何一条ACL规则时,HAProxy会把请求发往由default_backend选项指定的server_cache后端。

2.3 举例2

acl url_static path_end .gif .png .jpg .css .js

acl host_www hdr_deg(host) -i www

acl host_static hdr_deg(host) -i img. video. download. ftp.

use_backend static if host_static || host_www url_static

use_backend www if host_www

default_backend server_cache

解释:定义了url_static、host_www、host_static三个ACL规则。

  • 第一条:表示如果客户端在请求的URL中以.gif或.png或.jpg或.css或.js结尾,则此规则返回true;
  • 第二条:表示如果客户端以www开头的域名发送请求,则此规则返回true;
  • 第三条:表示如果客户端在请求的URL中以img.或video.或download.或ftp.结尾,则此规则返回true;
  • 第4-6条规则定义了当www_policy、bbs_policy、url_policy三个ACL规则返回true时需要调度到哪个后端。
  • 第四条:如用户的请求同时满足host_static+url_static规则或满足host_www+url_static规则,HAProxy会把请求直接发往名为static的后端。
  • 以此类推,当用户的请求不满足任何一条ACL规则时,HAProxy会把请求发往由default_backend选项指定的server_cache后端。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-12-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一 简介
  • 二 使用方法
    • 2.1 语法
      • 2.2 举例
        • 2.3 举例2
        相关产品与服务
        负载均衡
        负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档