打造Apache高可用集群:揭秘Keepalived的强大威力

需求简介

为了提升两台Apache服务器的高可用性,通过配置Keepalived并结合Shell脚本,实现VIP(虚拟IP)的自动切换,从而确保服务的高可用性和连续性。

注:请结合实际情况修改配置。

环境准备

1.Apache服务器两台;192.168.10.44,192.168.10.67
2.vip(虚拟IP):192.168.10.252
3.win10客户端

安装Apache服务

这里使用dnf命令安装部署(两台主机都需安装)

dnf install httpd -y

启动服务,确保客户端能够正常访问80端口

systemctl start httpd
打造Apache高可用集群:揭秘Keepalived的强大威力
打造Apache高可用集群:揭秘Keepalived的强大威力

PS:为了方便展示虚拟IP切换效果,这里将网页内容做一简单修改。

#分别在两台服务器上执行
echo "web1" > /var/www/html/index.html
echo "web2" > /var/www/html/index.html
打造Apache高可用集群:揭秘Keepalived的强大威力

安装keepalived

两台服务器均需安装.

dnf install keepalived

安装成功后会生成一个默认的文件/etc/keepalived/keepalived.conf,删除不需要的内容或直接复制粘贴以下内容

! Configuration File for keepalived

global_defs {
  router_id web1    #服务器名称,不可重复
  script_user root  #执行脚本的用户
  enable_script_security    #启用脚本安全
}
vrrp_script check_httpd {
       script "/etc/keepalived/check_httpd.sh"  #指定需要执行的脚本路径
       interval 3 #设置脚本执行的时间间隔
       weight -50  #如果脚本检测到服务不可用就将优先级减少50
       fall 2  #如果脚本执行连续失败两次,则减少优先级
       rise 1  #如果脚本执行成功一次,则恢复当前设备的优先级
}

vrrp_instance VI_1 {
   state MASTER    #配置该主机角色为MASTER
   interface ens160    #设置要关联的网卡
   virtual_router_id 51    #另一台服务器虚拟ID需保持一致,否则无法选举master
   priority 100    #设置优先级
   advert_int 1    #设置心跳检测时间
   authentication {    
       auth_type PASS
       auth_pass 1111
   }
   #配置VIP
   virtual_ipaddress {
       192.168.10.252/24
   }
   #关联检测脚本
   track_script {
       check_httpd
 }
}

编写检测脚本,用于监控apache服务进程,当进程不存在时关闭keepalived,实现虚拟IP切换

#!/usr/bin/env bash
if pgrep httpd 1>/dev/null ;then
       true
else
       systemctl stop keepalived
fi

将配置文件和检测脚本复制到服务器2

scp /etc/keepalived/* root@192.168.10.67:/etc/keepalived/

复制后需要对配置文件做一简单修改,否则会导致服务器2启动失败。

打造Apache高可用集群:揭秘Keepalived的强大威力

赋予脚本可执行权限

chmod +x /etc/keepalived/check_httpd.sh

启动服务,查看VIP状态

systemctl start keepalived

可以看到当前VIP在web1上

打造Apache高可用集群:揭秘Keepalived的强大威力

访问测试,可以看到当前访问的服务器为web1

打造Apache高可用集群:揭秘Keepalived的强大威力

故障切换测试

手动停止web1的apache服务,VIP会自动切换至web2

systemctl stop httpd

当web1服务恢复时,虚拟IP又会自动切回从而实现了Apache的高可用性

▽往期推荐△










原文始发于微信公众号(青菜浪人):

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/308226.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!