企业集群平台架构设计与实现 haproxy 篇3|学习笔记

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
.cn 域名,1个 12个月
传统型负载均衡 CLB,每月750个小时 15LCU
简介: 快速学习企业集群平台架构设计与实现 haproxy 篇3

开发者学堂课程【企业集群平台架构设计与实现:lvs/haproxy/keepalived:企业集群平台架构设计与实现 haproxy 篇3】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/391/detail/5015


企业集群平台架构设计与实现 haproxy 篇3


目录:

一、HAProxy  负载均衡器算法与使用技巧

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


一、HAProxy  负载均衡器算法与使用技巧

1、HAProxy 支持的负载均衡算法

(1)roundrobin, 表示简单的轮询,负载均衡基础算法公

(2)static-rr, 表示根据权重

(3)leastconn, 表示最少连接者先处理

(4)source, 表示根据请求源IP

(5)uri, 表示根据请求的URI;

(6)url__param,表示根据请求的 URI  参数来进行调度

(7)hdr(name), 表示根据  HTTP  请求头来锁定每一次  HTTP  请求;

(8)rdp-cookie(name), 表示根据据 cookie(name) 来锁定并哈希每一次TCP请求。

2、常用的负载均衡算法

(1)轮询算法: roundrobin

(2)根据请求源IP算法: source

(3)最少连接者先处理算法: lestconn

前边已经对192.168.81.236这个主机做了一个负载均衡。通过这个主机192.168.81.236去访问192.168.81.237和192.168.81.234这两个主机地址实现负债均衡。237和234都是8080端口,现在看是否实现负载均衡。

在192.168.81.237页面编辑路径:

[ root@237server ~]# cd /usr/ local/ tomcat1

在192.168.81.234编辑路径:

[ root@iivey ~]# cd /usr/ local/ tomcat

tomcat1. tar . gz  tomcat2 ,

[ root@i ivey~ ]# cd  /usr/ local/tomcat 2

现在两个主机都已经启动8080端口。浏览器操作,访问一个地址http://192.168.81.236/刷新,进入192.168.81.236/index.jsp,

看本地路径:本文件路径  /usr/loca1/ tomcat1 /webapps/ ROOT/ :

index.jsp

可以看到两个路径237和234状态值一直在变化的,tomcat1和2刷新是一直在相互变化。这里是通过 HAProxy 实现客户端两个节点的访问,表示已经实现了负载均衡。

或者还可以看 左下角 服务器环境变量 的内容,下拉,找到

SSH_ CONNECTION=' 192. 168. 81.30 49664 192.168. 81.237 22"

的探针,这里客户端的 IP 刷新是 237 和 234相互变化。

负载均衡的算法

算法Static-rr根据权重实现负载均衡。237server 的权重是6。iivey234 的权重是3。前者是后者的两倍。刷新 jsp 探针可看出。


二、通过 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_www  if  www_policy

use_backend  server_app  if  url_policy

use_backend  server_bbs  if  bbs_policy

default_backend  server_cache

这段代码就是实现 ACL 规则

acl host_ www   hdr_ dom(host)  -i    www. zb. com

acl host_ img   hdr_ dom(host)  -i    img. zb. com

use_ backend htmpool   if   host_ www

use_ backend imgpool   if   host_ img

通过这个规则可以去判断、实现。根据不同域名去访问不同客户端节点,这个功能在  HAProxy  里实现是比较轻松、灵活的。

比如:

acl host_ www  通过  acl  命令,后边跟上名称  host-www , hdr_ dom(host)是根据浏览器的域名来进行区分判断,-i表示忽略大小写, 后边跟上  www. zb. Com  这样一个域名。

当访问  www.zb.com  的时候,默认的  acl  规则是  host_ www,  如果是  host_ www  ,就把请求交给  htmpool  后端服务器处理。

同理,当访问 img.zb.com  的时候,会把请求发给 imgpool 后端服务器处理。

default_ backend htmpool  如果上边的规则都不满足,会默认走 htmpool 后端服务器。

通过 www.zb.com 域名,把请求转交到237 server 或者 iivey234 这两个主机实现负载均衡。当访问 img.zb.com 这个域名的时候,直接通过 host236 192. 168.81.236: 8080 实现调度。

检验是否实现,在 192.168.81.236 里编辑:

[ root@localhost conf ]# /etc/ init. d/haproxy restart

Stopping haproxy :                   [ OK ]

Starting haproxy :                   [ OK ]

[ root@loca 1host conf] #

可以看到已经实现,也可以到浏览器里观看实现。

相关文章
|
7月前
|
负载均衡 应用服务中间件 Linux
高可用系列文章之三 - NGINX 高可用实施方案
高可用系列文章之三 - NGINX 高可用实施方案
|
负载均衡 网络协议 算法
企业集群平台架构设计与实现haproxy篇1|学习笔记
快速学习企业集群平台架构设计与实现haproxy篇1
企业集群平台架构设计与实现haproxy篇1|学习笔记
|
负载均衡 算法 网络协议
企业集群平台架构设计与实现lvs篇2|学习笔记
快速学习企业集群平台架构设计与实现lvs篇2
企业集群平台架构设计与实现lvs篇2|学习笔记
|
移动开发 网络协议 前端开发
企业集群平台架构设计与实现 lvs 篇3|学习笔记
快速学习企业集群平台架构设计与实现 lvs 篇3
企业集群平台架构设计与实现 lvs 篇3|学习笔记
|
网络协议 Shell 网络安全
企业集群平台架构设计与实现 lvs 篇4|学习笔记
快速学习企业集群平台架构设计与实现lvs篇4
企业集群平台架构设计与实现 lvs 篇4|学习笔记
|
运维 监控 负载均衡
企业集群平台架构设计与实现haproxy篇3(二)|学习笔记
快速学习企业集群平台架构设计与实现haproxy篇3(二)
企业集群平台架构设计与实现haproxy篇3(二)|学习笔记
|
负载均衡 算法 前端开发
企业集群平台架构设计与实现 haproxy 篇2(二)|学习笔记
快速学习企业集群平台架构设计与实现 haproxy 篇2(二)
企业集群平台架构设计与实现 haproxy 篇2(二)|学习笔记
|
分布式计算 负载均衡 算法
企业集群平台架构设计与实现1vs篇1|学习笔记
快速学习企业集群平台架构设计与实现1vs篇1
企业集群平台架构设计与实现1vs篇1|学习笔记
|
监控 算法 网络协议
企业集群平台架构设计与实现lvs篇2|(二)学习笔记
快速学习企业集群平台架构设计与实现lvs篇2(二)
企业集群平台架构设计与实现lvs篇2|(二)学习笔记
|
监控 负载均衡 算法
企业集群平台架构设计与实现 haproxy 篇2|学习笔记
快速学习企业集群平台架构设计与实现 haproxy 篇2