阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Keepalived+Haproxy构建高可用负载均衡集群

451次阅读
没有评论

共计 7673 个字符,预计需要花费 20 分钟才能阅读完成。

keepalived 是一个类似于 layer3, 4 & 5 交换机制的软件,也就是我们平时说的第 3 层、第 4 层和第 5 层交换。Keepalived 的作用是检测 web 服务器的状态,如果有一台 web 服务器死机,或工作出现故障,Keepalived 将检测到,并将有故障的 web 服务器从系统中剔除,当 web 服务器工作正常后 Keepalived 自动将 web 服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的 web 服务器。HAProxy 提供高可用性、负载均衡以及基于 TCP 和 HTTP 应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。…

CentOS 6.3 下 Haproxy+Keepalived+Apache 配置笔记 http://www.linuxidc.com/Linux/2013-06/85598.htm

Haproxy + KeepAlived 实现 WEB 群集 on CentOS 6 http://www.linuxidc.com/Linux/2012-03/55672.htm

Keepalived+Haproxy 配置高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/56748.htm

Haproxy+Keepalived 构建高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/55880.htm

Keepalived+haproxy 构建 web 高可用负载均衡系统

本章将使用 keepalived 做为高可用集群调度用户请求,并且检测 haproxy 负载均衡器的状态,实时地完成节点的动态调整。

keepalived 原理图:

Keepalived+Haproxy 构建高可用负载均衡集群

Layer3:Keepalived 使用 Layer3 的方式工作式时,Keepalived 会定期向服务器群中的服务器

发送一个 ICMP 的数据包(既我们平时用的 Ping 程序), 如果发现某台服务的 IP 地址没有激活,Keepalived 便报告这台服务器失效,并将 它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。Layer3 的方式是以服务器的 IP 地址是否有效作为服务器工作正常与否的标准。在本文 中将采用这种方式。

Layer4: 如果您理解了 Layer3 的方式,Layer4 就容易了。Layer4 主要以 TCP 端口的状态来决定服务器工作正常与否。如 web server 的服务端口一般是 80,如果 Keepalived 检测到 80 端口没有启动,则 Keepalived 将把这台服务器从服务器群中剔除。

Layer5:Layer5 就是工作在具体的应用层了,比 Layer3,Layer4 要复杂一点,在网络上占用的带宽也要大一些。Keepalived 将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则 Keepalived 将把服务器从服务器群中剔除。

haproxy 工作机制:

Keepalived+Haproxy 构建高可用负载均衡集群

HAProxy 相比 LVS 的使用要简单很多,功能方面也很丰富。当 前,HAProxy 支持两种主要的代理模式:”tcp” 也即 4 层(大多用于邮件服务器、内部协议通信服务器等),和 7 层(HTTP)。在 4 层模式 下,HAProxy 仅在客户端和服务器之间转发双向流量。7 层模式下,HAProxy 会分析协议,并且能通过允许、拒绝、交换、增加、修改或者删除请求 (request)或者回应 (response) 里指定内容来控制协议,这种操作要基于特定规则。

系统环境:CentOS6.4

iptables 关闭

selinux is disabled

一、keepalived 的安装与配置

#tar zxf keepalived-1.2.7.tar.gz

#cd keepalived-1.2.7

#./configure –prefix=/usr/local/keepalived 指定路径编译

其中可能安装一下依赖包:

openssl-devel popt-devel libnl-devel

# make && make install 执行 make 安装

# cd /usr/local/keepalived/ 默认主目录,存在 sbin/ 和 etc/ 目录

# ln -s /usr/local/keepalived/sbin/keepalived /sbin/ 便于管理 keepalived,将文件链接

# ln -s /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

#ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

# vim /etc/keepalived/keepalived.conf
root@localhost
}
notification_email_from keepalived@server3.example.com 通知收件人地址
virtual_router_id 88 定义虚拟路由 id
priority 100 定义主节点(权值决定)
virtual_ipaddress {定义 VIP
192.168.0.88
}
}

使用 lvs+keepalived 时使用一下配置
virtual_server 192.168.0.88 80{定义虚拟服务
delay_loop 6
lb_algo rr 使用轮询方式调度算法
lb_kind DR 使用 DR 直连模式
# persistence_timeout 50 这个是 nat 的必须做的,如果加上这个的话,就会持续链接这个
protocol TCP
real_server 192.168.0.198 80 {定义真实服务
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.0.199 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}

#/etc/init.d/keepalived start

因为要构建 keepalived 高可用集群,因此需要在 keepalived 备用节点上安装配置同样的服务。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-05/101765p2.htm

二、haproxy 的安装与配置

#tar zxf haproxy-1.4.23.tar.gz

#cd haproxy-1.4.23

#find -name *.spec 发现 spec 文件,可以将源码包打压成 rpm

#yum install rpm-build -y 安装 rpm 包构建软件

#rpmbuild -tb haproxy-1.4.23.tar.gz 使用源码包构建 rpm 包

#cd /root/rpmbuild/RPMS/x86_64 生成的 rpm 包

#rpm -ivh *.rpm 安装 keepalived 的 rpm 包

# vim /etc/haproxy/haproxy.cfg
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen status_auth 192.168.0.103:8080 给监控界面做一个端口绑定,指定用户和密码
stats enable
stats uri /admin
stats auth user:passwd 定义监控页面的用户和密码
stats refresh 6

slisten ha_proxy 192.168.0.103:80 在 103 主机上定义真实主机(Real Server)
balance roundrobin
server inst1 192.168.0.198:80
server inst2 192.168.0.199:80

# vim /etc/rsyslog.conf
开启 tcp 或者 udp
$ModLoad imudp
$UDPServerRun 514
local0.* /var/log/haproxy.log
#/etc/init.d/rsyslog restart

#/etc/init.d/haproxy start

web 负载均衡方案 haproxy 构建完毕!

访问 http://192.168.0.103 可以访问到 198 和 199 主机的内容

访问 http://192.168.0.103:8080 使用用户名和密码登陆可以查看链接状态

 

三、整合 keepalived 和 haproxy

# vim check_haproxy.sh 编写一个检测 haproxy 状态脚本
#!/bin/bash
/etc/init.d/haproxy status &> /dev/null || /etc/init.d/haproxy restart &> /dev/null
if [$? -ne 0] ;then
/etc/init.d/keepalived stop &> /dev/null
fi

# chmod +x check_haproxy.sh
#./check_haproxy.sh 在 haproxy 关闭时自动启动 haproxy

修改 keepalived 文件

# vim keepalived.conf
vrrp_script check_haproxy {
script “/opt/check_haproxy.sh”
interval 2
weight 2
}

virtual_ipaddress {
192.168.0.88 新的 VIP
}
track_script {
check_haproxy
}

# vim /etc/haproxy/haproxy.cfg
listen www.domain.com *:80 所以 IP 都可以访问(给本机 VIP 做解析)
cookie SERVERID rewrite
balance roundrobin
server app1_1 192.168.0.198:80 cookie app1inst1 check inter 2000 rise 2 fall 3
server app1_2 192.168.0.199:80 cookie app1inst2 check inter 2000 rise 2 fall 3

listen status_auth *:8080 使用任意客户端检测
stats enable
stats uri /admin
stats auth user:passwd 定义监控页面的用户和密码
stats refresh 6

# /etc/init.d/keepalived restart

# ip addr show 查看主 keepalived 已经加载了 VIP 资源
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:9c:c9:22 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.103/24 brd 192.168.0.255 scope global eth0 103 为主节点 IP
inet 192.168.0.88/32 scope global eth0 88 为 VIP

# /etc/init.d/haproxy status 查看状态为 running

注意:构建 keepalived+haproxy 高可用负载均衡集群必须在两个节点分别配置两个服务,并且保证相同的配置和服务,在备用节点上注意将权值修改小些。

测试高可用和负载均衡:

任何一个主机的 keepalived 出现故障,另外一个主机会接管相应的资源。

任何一个 haproxy 出现故障,客户仍然可以访问后端 Real Server 提供的服务。

keepalived 是一个类似于 layer3, 4 & 5 交换机制的软件,也就是我们平时说的第 3 层、第 4 层和第 5 层交换。Keepalived 的作用是检测 web 服务器的状态,如果有一台 web 服务器死机,或工作出现故障,Keepalived 将检测到,并将有故障的 web 服务器从系统中剔除,当 web 服务器工作正常后 Keepalived 自动将 web 服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的 web 服务器。HAProxy 提供高可用性、负载均衡以及基于 TCP 和 HTTP 应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。…

CentOS 6.3 下 Haproxy+Keepalived+Apache 配置笔记 http://www.linuxidc.com/Linux/2013-06/85598.htm

Haproxy + KeepAlived 实现 WEB 群集 on CentOS 6 http://www.linuxidc.com/Linux/2012-03/55672.htm

Keepalived+Haproxy 配置高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/56748.htm

Haproxy+Keepalived 构建高可用负载均衡 http://www.linuxidc.com/Linux/2012-03/55880.htm

Keepalived+haproxy 构建 web 高可用负载均衡系统

本章将使用 keepalived 做为高可用集群调度用户请求,并且检测 haproxy 负载均衡器的状态,实时地完成节点的动态调整。

keepalived 原理图:

Keepalived+Haproxy 构建高可用负载均衡集群

Layer3:Keepalived 使用 Layer3 的方式工作式时,Keepalived 会定期向服务器群中的服务器

发送一个 ICMP 的数据包(既我们平时用的 Ping 程序), 如果发现某台服务的 IP 地址没有激活,Keepalived 便报告这台服务器失效,并将 它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。Layer3 的方式是以服务器的 IP 地址是否有效作为服务器工作正常与否的标准。在本文 中将采用这种方式。

Layer4: 如果您理解了 Layer3 的方式,Layer4 就容易了。Layer4 主要以 TCP 端口的状态来决定服务器工作正常与否。如 web server 的服务端口一般是 80,如果 Keepalived 检测到 80 端口没有启动,则 Keepalived 将把这台服务器从服务器群中剔除。

Layer5:Layer5 就是工作在具体的应用层了,比 Layer3,Layer4 要复杂一点,在网络上占用的带宽也要大一些。Keepalived 将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则 Keepalived 将把服务器从服务器群中剔除。

haproxy 工作机制:

Keepalived+Haproxy 构建高可用负载均衡集群

HAProxy 相比 LVS 的使用要简单很多,功能方面也很丰富。当 前,HAProxy 支持两种主要的代理模式:”tcp” 也即 4 层(大多用于邮件服务器、内部协议通信服务器等),和 7 层(HTTP)。在 4 层模式 下,HAProxy 仅在客户端和服务器之间转发双向流量。7 层模式下,HAProxy 会分析协议,并且能通过允许、拒绝、交换、增加、修改或者删除请求 (request)或者回应 (response) 里指定内容来控制协议,这种操作要基于特定规则。

系统环境:CentOS6.4

iptables 关闭

selinux is disabled

一、keepalived 的安装与配置

#tar zxf keepalived-1.2.7.tar.gz

#cd keepalived-1.2.7

#./configure –prefix=/usr/local/keepalived 指定路径编译

其中可能安装一下依赖包:

openssl-devel popt-devel libnl-devel

# make && make install 执行 make 安装

# cd /usr/local/keepalived/ 默认主目录,存在 sbin/ 和 etc/ 目录

# ln -s /usr/local/keepalived/sbin/keepalived /sbin/ 便于管理 keepalived,将文件链接

# ln -s /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

#ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

# vim /etc/keepalived/keepalived.conf
root@localhost
}
notification_email_from keepalived@server3.example.com 通知收件人地址
virtual_router_id 88 定义虚拟路由 id
priority 100 定义主节点(权值决定)
virtual_ipaddress {定义 VIP
192.168.0.88
}
}

使用 lvs+keepalived 时使用一下配置
virtual_server 192.168.0.88 80{定义虚拟服务
delay_loop 6
lb_algo rr 使用轮询方式调度算法
lb_kind DR 使用 DR 直连模式
# persistence_timeout 50 这个是 nat 的必须做的,如果加上这个的话,就会持续链接这个
protocol TCP
real_server 192.168.0.198 80 {定义真实服务
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.0.199 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}

#/etc/init.d/keepalived start

因为要构建 keepalived 高可用集群,因此需要在 keepalived 备用节点上安装配置同样的服务。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-05/101765p2.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计7673字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7955375
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...
2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025 年 11 月 28 日 -Cloudflare 史诗级事故: 一次配置失误,引爆全球宕机 前言 继今...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...