当前位置: 首页 > news >正文

Linux:keepalived + ipvsadm

介绍

Linux:keepalived 双热备份(基础备份web)_鲍海超-GNUBHCkalitarro的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/w14768855/article/details/132815057?spm=1001.2014.3001.5501


环境

 一台 centos7    keepalived    ipvsadm    (主服务器) 192.168.254.1

 一台 centos7    keepalived    ipvsadm    (备份服务器)  192.168.254.2

漂移ip  :  192.168.254.66

 一台 centos7    web   (web1)  192.168.254.3

 一台 centos7    web   (web2)    192.168.254.3


 在主服务器上的配置

yum -y install keepalived ipvsadm
systemctl enable keepalived.service 
mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
vim /etc/keepalived/keepalived.conf写入bal_defs {router_id tarro1
}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 1priority 100advert_int 1authentication {auth_type PASSauth_pass 123123}virtual_ipaddress {192.168.254.66}
}virtual_server 192.168.254.66 80 {delay_loop 15lb_algo rrlb_kind DRprotocol TCPreal_server 192.168.254.3 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 4}}real_server 192.168.254.4 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 4}}
}

 

systemctl restart keepalived
modprobe ip_vs
echo "modprobe ip_vs" >>/etc/rc.local

备份服务器上的配置

yum -y install ipvsadm keepalived
systemctl enable keepalived.service 
mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
vim /etc/keepalived/keepalived.conf写入bal_defs {router_id tarro2
}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 1priority 90advert_int 1authentication {auth_type PASSauth_pass 123123}virtual_ipaddress {192.168.254.66}
}virtual_server 192.168.254.66 80 {delay_loop 15lb_algo rrlb_kind DR protocol TCPreal_server 192.168.254.3 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 4}}real_server 192.168.254.4 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 4}}
}
modprobe ip_vs
echo "modprobe ip_vs" >>/etc/rc.local
systemctl restart keepalived

web1服务器配置

yum -y install httpd
systemctl enable httpd
systemctl start httpd
echo "<h1>192.168.254.3" > /var/www/html/index.html

 

vim /etc/sysconfig/network-scripts/ifcfg-lo:0写入DEVICE=lo:0
IPADDR=192.168.254.66
NETMASK=255.255.255.255
ONBOOT=yes
systemctl restart network

 

echo "route add -host 192.168.254.66 dev lo:0" >>/etc/rc.local
route add -host 192.168.254.66 dev lo:0
vim /etc/sysctl.conf末尾插入net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
sysctl -p

web2服务器配置

yum -y install httpd
systemctl enable httpd
systemctl start httpd
echo "<h1>192.168.254.4" > /var/www/html/index.html

vim /etc/sysconfig/network-scripts/ifcfg-lo:0写入DEVICE=lo:0
IPADDR=192.168.254.66
NETMASK=255.255.255.255
ONBOOT=yes
systemctl restart network
echo "route add -host 192.168.254.66 dev lo:0" >>/etc/rc.local
route add -host 192.168.254.66 dev lo:0
vim /etc/sysctl.conf末尾插入net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
sysctl -p

测试效果

 

现在主服务器上有漂移地址和虚拟主机列表

 备份主机上也有虚拟列表 但是没有66的漂移地址就对了,因为现在我们的主服务器还在正常工作

现在访问192.168.254.66 就可以被lvs服务器把流量分到两个web服务器上 

我们把254.4关闭一下

 

一下就到3了  !!! 这里我只是在先效果,实际的环境lvs并不是备份,而是负载均衡,我们的lvs主服务器会把流量分到两个web站点上,然而两个web站点在实际中界面内容是一样的,这里只是为了看效果

现在可以看到上面lvs效果已经成功了

现在去测试keepalived效果

我们把主服务器关机

在主服务器关机的瞬间,我们的备份服务器立马会有漂移地址,我们再去访问254.66 

 

依然不影响访问 

我们再开启主服务器

漂移地址立马就回到主服务器了,测试成功 

http://www.lryc.cn/news/164786.html

相关文章:

  • Linux基础命令(示例代码 + 解释)
  • 巨人互动|Google企业户Google“自动采纳建议”应该如何使用
  • 元宇宙全球市场规模到2030年将达9805亿美元!
  • 《向量数据库指南》——向量数据库内核面临的技术挑战及应对措施
  • API对接中需要注意的事项
  • linux 6中4T磁盘识别并分区格式化
  • WebServer 解析HTTP 响应报文
  • 开利网络参与“大湾区独角兽创投大赛”进行蚓链数字生态项目路演
  • 前端的8种跨域解决方案
  • Linux知识点 -- 网络编程套接字
  • 逆向大漠插件/用VB6.0实现后台鼠标移动和后台鼠标左键点击
  • 重庆OV证书和EV证书有什么区别
  • uni-app(微信小程序)图片旋转放缩,文字绘制、海报绘制
  • Spring Boot 2.x基础教程
  • 汽车红外夜视系统行业发展总体概况
  • Java 和 PHP GC 的差异和差异出现的原因
  • loguru logger使用
  • vue-自适应布局-postcss-pxtorem
  • 9.12|day 5|day 44 |完全背包| 518. 零钱兑换 II | 377. 组合总和 Ⅳ
  • C++ 中的原子变量(std::atomic)使用指南
  • 【用unity实现100个游戏之9】使用Unity制作类八方旅人、饥荒风格的俯视角2.5D游戏
  • 如何在群晖中,正确配置 docker 的 ipv6 地址
  • XSS入门 XSS Challenges
  • 李沐《动手学深度学习》torch.cat() 和 torch.stack()的区别及思考
  • 【算法与数据结构】235、LeetCode二叉搜索树的最近公共祖先
  • bboss 流批一体化框架 与 数据采集 ETL
  • JVM详细教程
  • Smartbi吴华夫:后疫情时代,BI发展趋势的观察与应对
  • 软件设计模式系列之三———工厂方法模式
  • pytorch 多卡分布式训练 调用all_gather_object 出现阻塞等待死锁的问题