当前位置:首页 > 经验 >

32段均衡器完美调节图(32段均衡器最佳参数)

来源:原点资讯(www.yd166.com)时间:2022-10-27 02:07:09作者:YD166手机阅读>>

同时也被新写入了一条 Cookie

32段均衡器完美调节图,32段均衡器最佳参数(9)

如果发现仍然被定位到 ms1.srv1,同时也没有写入新的 HA_STICKY_ms1 Cookie,那么可能是浏览器缓存了 ms1/demo.html 页面,请求并没有到达 HAProxy。F5刷新一下应该就可以了。

HAProxy 搭建 L4 负载均衡器

HAProxy 作为 L4 负载均衡器工作时,不会去解析任何与 HTTP 协议相关的内容,只在传输层对数据包进行处理。也就是说,以 L4 模式运行的 HAProxy,无法实现根据 URL向不同后端转发、通过 cookie 实现会话保持等功能。

同时,在 L4 模式下工作的 HAProxy 也无法提供监控页面。

但作为 L4 负载均衡器的 HAProxy 能够提供更高的性能,适合于基于套接字的服务(如数据库、消息队列、RPC、邮件服务、Redis等),或不需要逻辑规则判断,并已实现了会话共享的 HTTP 服务。

总体方案

本例中,我们使用 HAProxy 以 L4 方式来代理两个 HTTP 服务,不提供会话保持。

global daemon maxconn 30000 #ulimit -n至少为60018 user ha pidfile /home/ha/haproxy/conf/haproxy.pid log 127.0.0.1 local0 info log 127.0.0.1 local1 warning defaults mode tcp log global option tcplog #开启tcplog timeout connect 5000ms timeout client 10000ms timeout server 10000ms #TCP模式下,应将timeout client和timeout server设置为一样的值,以防止出现问题 option httpchk GET /healthCheck.html #定义默认的健康检查策略 frontend http-in bind *:9002 maxconn 30000 #定义此端口上的maxconn default_backend default_servers #请求定向至后端服务群default_servers backend default_servers #定义后端服务群default_servers balance roundrobin server def.srv1 192.168.8.111:8082 maxconn 300 check server def.srv2 192.168.8.112:8082 maxconn 300 checkL4模式下的会话保持

虽然 TCP 模式下的 HAProxy 无法通过 HTTP Cookie 实现会话保持,但可以很方便的实现基于客户端IP的会话保持。只需将

balance roundrobin 改为 balance source

此外,HAProxy 提供了强大的 stick-table 功能,HAProxy 可以从传输层的数据包中采样出大量的属性,并将这些属性作为会话保持的策略写入 stick-table 中。

HAProxy关键配置详解总览

HAProxy 的配置文件共有5个域

global:用于配置全局参数 default:用于配置所有frontend和backend的默认属性 frontend:用于配置前端服务(即HAProxy自身提供的服务)实例 backend:用于配置后端服务(即HAProxy后面接的服务)实例组 listen:frontend backend的组合配置,可以理解成更简洁的配置方法global 域的关键配置

daemon:指定HAProxy以后台模式运行,通常情况下都应该使用这一配置 user [username] :指定HAProxy进程所属的用户 group [groupname] :指定HAProxy进程所属的用户组 log [address] [device] [maxlevel] [minlevel]:日志输出配置,如log 127.0.0.1 local0 info warning,即向本机rsyslog或syslog的local0输出info到warning级别的日志。其中[minlevel]可以省略。HAProxy的日志共有8个级别,从高到低为emerg/alert/crit/err/warning/notice/info/debug pidfile :指定记录HAProxy进程号的文件绝对路径。主要用于HAProxy进程的停止和重启动作。 maxconn :HAProxy进程同时处理的连接数,当连接数达到这一数值时,HAProxy将停止接收连接请求

frontend 域的关键配置

acl [name] [criterion] [flags] [operator] [value]:定义一条ACL,ACL是根据数据包的指定属性以指定表达式计算出的true/false值。如"acl url_ms1 path_beg -i /ms1/"定义了名为url_ms1的ACL,该ACL在请求uri以/ms1/开头(忽略大小写)时为true bind [ip]:[port]:frontend服务监听的端口 default_backend [name]:frontend对应的默认backend disabled:禁用此frontend http-request [operation] [condition]:对所有到达此frontend的HTTP请求应用的策略,例如可以拒绝、要求认证、添加header、替换header、定义ACL等等。 http-response [operation] [condition]:对所有从此frontend返回的HTTP响应应用的策略,大体同上 log:同global域的log配置,仅应用于此frontend。如果要沿用global域的log配置,则此处配置为log global maxconn:同global域的maxconn,仅应用于此frontend mode:此frontend的工作模式,主要有http和tcp两种,对应L7和L4两种负载均衡模式 option forwardfor:在请求中添加X-Forwarded-For Header,记录客户端ip option http-keep-alive:以KeepAlive模式提供服务 option httpclose:与http-keep-alive对应,关闭KeepAlive模式,如果HAProxy主要提供的是接口类型的服务,可以考虑采用httpclose模式,以节省连接数资源。但如果这样做了,接口的调用端将不能使用HTTP连接池 option httplog:开启httplog,HAProxy将会以类似Apache HTTP或Nginx的格式来记录请求日志 option tcplog:开启tcplog,HAProxy将会在日志中记录数据包在传输层的更多属性 stats uri [uri]:在此frontend上开启监控页面,通过[uri]访问 stats refresh [time]:监控数据刷新周期 stats auth [user]:[password]:监控页面的认证用户名密码 timeout client [time]:指连接创建后,客户端持续不发送数据的超时时间 timeout http-request [time]:指连接创建后,客户端没能发送完整HTTP请求的超时时间,主要用于防止DoS类攻击,即创建连接后,以非常缓慢的速度发送请求包,导致HAProxy连接被长时间占用 use_backend [backend] if|unless [acl]:与ACL搭配使用,在满足/不满足ACL时转发至指定的backend

backend 域的关键配置

acl:同frontend域 balance [algorithm]:在此backend下所有server间的负载均衡算法,常用的有roundrobin和source,完整的算法说明见官方文档configuration.html#4.2-balance cookie:在backend server间启用基于cookie的会话保持策略,最常用的是insert方式,如cookie HA_STICKY_ms1 insert indirect nocache,指HAProxy将在响应中插入名为HA_STICKY_ms1的cookie,其值为对应的server定义中指定的值,并根据请求中此cookie的值决定转发至哪个server。indirect代表如果请求中已经带有合法的HA_STICK_ms1 cookie,则HAProxy不会在响应中再次插入此cookie,nocache则代表禁止链路上的所有网关和缓存服务器缓存带有Set-Cookie头的响应。 default-server:用于指定此backend下所有server的默认设置。具体见下面的server配置。 disabled:禁用此backend http-request/http-response:同frontend域 log:同frontend域 mode:同frontend域 option forwardfor:同frontend域 option http-keep-alive:同frontend域 option httpclose:同frontend域 option httpchk [METHOD] [URL] [VERSION]:定义以http方式进行的健康检查策略。如option httpchk GET /healthCheck.html HTTP/1.1 option httplog:同frontend域 option tcplog:同frontend域 server [name] [ip]:[port] [params]:定义backend中的一个后端server,[params]用于指定这个server的参数,常用的包括有: check:指定此参数时,HAProxy将会对此server执行健康检查,检查方法在option httpchk中配置。同时还可以在check后指定inter, rise, fall三个参数,分别代表健康检查的周期、连续几次成功认为server UP,连续几次失败认为server DOWN,默认值是inter 2000ms rise 2 fall 3 cookie [value]:用于配合基于cookie的会话保持,如cookie ms1.srv1代表交由此server处理的请求会在响应中写入值为ms1.srv1的cookie(具体的cookie名则在backend域中的cookie设置中指定) maxconn:指HAProxy最多同时向此server发起的连接数,当连接数到达maxconn后,向此server发起的新连接会进入等待队列。默认为0,即无限 maxqueue:等待队列的长度,当队列已满后,后续请求将会发至此backend下的其他server,默认为0,即无限 weight:server的权重,0-256,权重越大,分给这个server的请求就越多。weight为0的server将不会被分配任何新的连接。所有server默认weight为1 timeout connect [time]:指HAProxy尝试与backend server创建连接的超时时间 timeout check [time]:默认情况下,健康检查的连接 响应超时时间为server命令中指定的inter值,如果配置了timeout check,HAProxy会以inter作为健康检查请求的连接超时时间,并以timeout check的值作为健康检查请求的响应超时时间 timeout server [time]:指backend server响应HAProxy请求的超时时间

default 域

上文所属的frontend和backend域关键配置中,除acl、bind、http-request、http-response、use_backend外,其余的均可以配置在default域中。default域中配置了的项目,如果在frontend或backend域中没有配置,将会使用default域中的配置。

listen 域

listen域是frontend域和backend域的组合,frontend域和backend域中所有的配置都可以配置在listen域下使用Keepalived实现HAProxy高可用

尽管 HAProxy 非常稳定,但仍然无法规避操作系统故障、主机硬件故障、网络故障甚至断电带来的风险。所以必须对 HAProxy 实施高可用方案。

下文将介绍利用 Keepalived 实现的 HAProxy 热备方案。即两台主机上的两个 HAProxy实例同时在线,其中权重较高的实例为 MASTER,MASTER 出现问题时,另一台实例自动接管所有流量。

原理

在两台 HAProxy 的主机上分别运行着一个 Keepalived 实例,这两个 Keepalived 争抢同一个虚IP地址,两个 HAProxy 也尝试去绑定这同一个虚IP地址上的端口。

显然,同时只能有一个 Keepalived 抢到这个虚 IP,抢到了这个虚 IP 的 Keepalived 主机上的 HAProxy 便是当前的 MASTER。

Keepalived 内部维护一个权重值,权重值最高的 Keepalived 实例能够抢到虚IP。同时 Keepalived 会定期 check 本主机上的 HAProxy 状态,状态OK时权重值增加。

搭建 HAProxy 主备集群环境准备

在两台物理机上安装并配置 HAProxy,本例中,将在 192.168.8.110 和 192.168.8.111 两台主机上上安装两套完全一样的 HAProxy,具体步骤省略,请参考“使用 HAProxy 搭建L7负载均衡器”一节。

安装Keepalived

下载,解压,编译,安装:

wget http://www.keepalived.org/software/keepalived-1.2.19.tar.gz tar -xzf keepalived-1.2.19.tar.gz ./configure --prefix=/usr/local/keepalived make make install

注册为系统服务:

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ chmod x /etc/init.d/keepalived

注意:Keepalived 需要使用 root 用户进行安装和配置

配置 Keepalived

创建并编辑配置文件

mkdir -p /etc/keepalived/ cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ vi /etc/keepalived/keepalived.conf

配置文件内容:

global_defs { router_id LVS_DEVEL #虚拟路由名称 } #HAProxy健康检查配置 vrrp_script chk_haproxy { script "killall -0 haproxy" #使用killall -0检查haproxy实例是否存在,性能高于ps命令 interval 2 #脚本运行周期 weight 2 #每次检查的加权权重值 } #虚拟路由配置 vrrp_instance VI_1 { state MASTER #本机实例状态,MASTER/BACKUP,备机配置文件中请写BACKUP interface enp0s25 #本机网卡名称,使用ifconfig命令查看 virtual_router_id 51 #虚拟路由编号,主备机保持一致 priority 101 #本机初始权重,备机请填写小于主机的值(例如100) advert_int 1 #争抢虚地址的周期,秒 virtual_ipaddress { 192.168.8.201 #虚地址IP,主备机保持一致 } track_script { chk_haproxy #对应的健康检查配置 } }

如果主机没有killall命令,则需要安装psmisc包:

yum intall psmisc

分别启动两个Keepalived

service keepalived start验证

启动后,先分别在两台主机查看虚IP 192.168.8.201由谁持有,执行命令:

ip addr sh enp0s25 (将enp0s25替换成主机的网卡名)

持有虚IP的主机输出会是这样的:

32段均衡器完美调节图,32段均衡器最佳参数(10)

另一台主机输出则是这样的:

32段均衡器完美调节图,32段均衡器最佳参数(11)

如果你先启动备机的 Keepalived,那么很有可能虚 IP 会被备机抢到,因为备机的权重配置只比主机低1,只要执行一次健康检查就能把权重提高到 102,高于主机的 101。

此时访问 http://192.168.8.201:9001/ms1/demo.html ,可以看到我们先前部署的网页。

此时,检查/var/log/haproxy.log,能看到此请求落在了抢到了虚IP的主机上。

接下来,我们停掉当前 MASTER 主机的 HAProxy 实例(或者Keepalive实例,效果一样)

service haproxy stop

再次访问 http://192.168.8.201:9001/ms1/demo.html ,并查看备机的 /var/log/haproxy.log,会看到此请求落在了备机上,主备自动切换成功。

也可以再次执行ip addr sh enp0s25命令,会看到虚IP被备机抢去了。

在/var/log/message中,也能够看到keepalived输出的切换日志:

32段均衡器完美调节图,32段均衡器最佳参数(12)

栏目热文

xc60均衡器最佳设置(2023款xc60的十大忠告)

xc60均衡器最佳设置(2023款xc60的十大忠告)

在40万左右的豪华品牌SUV车型中,沃尔沃XC60算的上是最“特立独行”的一个,简约的设计乍一看并不张扬,但当你细细体验...

2022-10-27 02:07:31查看全文 >>

汽车5段音效最佳设置(汽车5段均衡器最佳音质效果图)

汽车5段音效最佳设置(汽车5段均衡器最佳音质效果图)

大家好,我是汤姆特带你玩转特斯拉~−−−−−−−−−−−−−−−−−本篇跟大家聊一下如何设置音响的音效A️:基础信息 ️...

2022-10-27 01:44:00查看全文 >>

10段均衡器最佳效果(16段均衡器最佳效果图)

10段均衡器最佳效果(16段均衡器最佳效果图)

华硕Zenfone9小屏旗舰手机已于7月28日正式发布。(图片来源于网络)华硕Zenfone9号称最小的安卓旗舰之一。该...

2022-10-27 01:48:34查看全文 >>

12个均衡器最佳设置(车载12段均衡器调节图)

12个均衡器最佳设置(车载12段均衡器调节图)

原创 文:赖英智 新音响New Audiophile 三人行必有我师,拜访不同的发烧友,总能从中学习到一些新知与不同观念...

2022-10-27 02:07:14查看全文 >>

高中低三段均衡器设置(三段均衡器最佳参数)

高中低三段均衡器设置(三段均衡器最佳参数)

如何调整均衡器  均衡器(Equalizer),是一种可以分别调节各种频率成分电信号放大量的电子设备,通过对各种不同频率...

2022-10-27 02:02:57查看全文 >>

音响均衡器最佳设置图(音响均衡器10段最佳设置)

音响均衡器最佳设置图(音响均衡器10段最佳设置)

汽车音响均衡器用来调整播放音乐的风格,并不可以改善音质,要想得到更完美的视听感受,必须要下载播放音质更好,甚至无损的音乐...

2022-10-27 01:30:00查看全文 >>

31段均衡器最佳效果图(31段均衡器最佳调节图解)

31段均衡器最佳效果图(31段均衡器最佳调节图解)

众所周知均衡器的主要功能就是调整音色、调整声场和抑制声反馈了,如何调整音色的文章很多了,在这里我想着重介绍的是如何使用专...

2022-10-27 01:50:40查看全文 >>

汽车10段音效最佳设置(10段音效最佳设置图)

汽车10段音效最佳设置(10段音效最佳设置图)

电脑不支持 Dolby Audio 杜比音效,又想体验怎么办?相信大家去电影院看电影的时候,有时候会看到「Dolby A...

2022-10-27 01:33:17查看全文 >>

网易云均衡器最佳参数(十段均衡器最佳效果图)

网易云均衡器最佳参数(十段均衡器最佳效果图)

通过网易云音乐的均衡器功能,用户可以对系统的声音相关内容进行调节设置,那么网易云均衡器在哪里找到呢?下面小编就为大...

2022-10-27 01:31:33查看全文 >>

十档音效最佳音质(十段均衡器最佳重低音效果图)

十档音效最佳音质(十段均衡器最佳重低音效果图)

华为余承东手持Mate50系列手机钛媒体App 9月6日消息,华为推出全新旗舰手机Mate 50系列。新品为全球首款支持...

2022-10-27 02:00:46查看全文 >>

文档排行