Nginx+Keepalived 实现Nginx高可用集群安装与卸载

本文只介绍源码包安装keepalived

我这里准备了2台虚拟服务器:

192.168.10.100Keepalived 2.2.8
192.168.10.101Keepalived 2.2.8

一、安装

打开keepalived官网icon-default.png?t=N7T8https://www.keepalived.org/download.html查看当前最新版本 

https://www.keepalived.org/download.html

文章发布的时候版本是2.2.8

可以选择下载到电脑在上传到服务器,我这里是选择服务器使用 wget直接拉取

cd /home/www/
# 如果你没有www目录创建一个  搞一致 第一次部署好排查错误
# 下载

wget https://www.keepalived.org/software/keepalived-2.2.8.tar.gz

# 解压
tar -zxvf keepalived-2.2.8.tar.gz


#编译  
cd  keepalived-2.2.8
#--prefix 指定安装地址

./configure   --prefix=/usr/local/keepalived/

#编译并安装
make && make install


二、创建配置文件及启动服务

# 创建keepalived配置文件目录
mkdir /etc/keepalived
# 进入目录
cd /etc/keepalived/

#新建keepalived配置文件
touch  keepalived.conf 

# 复制keepalived脚本到/etc/init.d/ 目录 (就可以使用 service 命令便捷调用)
cp /home/www/keepalived-2.2.8/keepalived/etc/init.d/keepalived /etc/init.d/



# 拷贝keepalived脚本到/etc/sysconfig/ 目录  
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/


# 建立软连接 
ln -s /usr/local/keepalived/sbin/keepalived  /sbin/


# 添加到开机启动 
chkconfig keepalived on 

修改配置文件:因为刚才配置文件是新建的文件所以要往里面添加内容,以下是主服务器配置文件:

# Configuration File for keepalived

global_defs {
    # 路由标志
    router_id ces
}

# 集群资源监控,组合track_script进行
vrrp_script chk_nginx {
    # 检测 nginx 状态的脚本路径
    script "/etc/keepalived/nginx_check.sh"
    # 检测时间间隔
    interval 2 
    # 条件成立 权重减20 
    weight -20
}

vrrp_instance PROXY {
    # 设置的当前主机为主节点,如果是备用节点,则设置为BACKUP
    state MASTER
    
    # 指定HA 监测网络接口,可以用ifconfig查看来决定设置哪一个
    interface ens33
    
    # 虚拟路由标识,同一个VRRP实例要使用同一个标识,主备机
    virtual_router_id 100
    
    # 因为当前环境中VRRP组播有问题,改为使用单播发送VRRP报文
    # 如果VRRP组播没问题,以下这块的内容可以注释掉。
    # 这个地方需要关注,之前未做此设置,结果主备节点互相不能发现,因此主备节点都升级成了MASTER,并且绑定了VIP
#    unicast_src_ip 192.168.10.100
#    unicast_peer {
        # 备用节点的 IP 地址
#        192.168.10.101
#    }
    
    # 设置优先级,确保主节点的优先级高过备用节点
    priority 100
    
    # 用于主备节点间同步检查的时间间隔
    advert_int 1
    
    # 设置主备节点间的通信验证类型及密码,同一个VRRP实例中需一致
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    
    # 设置虚拟IP地址,当keepalived状态切换为MASTER时,此IP会自动添加到系统中
    # 当状态切换到BACKUP时,此IP会自动从系统中删除
    # 可以通过命令ip addr查看切换后的状态
    virtual_ipaddress {
        # 虚拟IP地址
        192.168.10.180
    }
    
    # 集群资源监控,组合vrrp-script进行
    track_script {
        chk_nginx
    }
}

修改后保存: esc->: ->wq 

然后启动

# 启动命令 
service keepalived start  
# 查看服务状况
service keepalived status

出现以下界面表示启动成功

我们使用命令 ip  a 查看一下虚拟ip 是否绑定到了端口

三、备份服务器部署安装

备份服务器安装跟主服务器一样,唯一的区别就是配置文件的修改:这是备份服务器的配置demo:

# Configuration File for keepalived

global_defs {
    # 路由标志
    router_id ces
}

# 集群资源监控,组合track_script进行
vrrp_script chk_nginx {
    # 检测 nginx 状态的脚本路径
    script "/etc/keepalived/nginx_check.sh"
    # 检测时间间隔
    interval 2 
    # 条件成立 权重减20 
    weight -20
}

vrrp_instance PROXY {
    # 设置的当前主机为备用节点,如果是主节点,则设置为MASTER
    state BACKUP
    
    # 指定HA 监测网络接口,可以用ifconfig查看来决定设置哪一个
    interface ens33
    
    # 虚拟路由标识,同一个VRRP实例要使用同一个标识,主备机
    virtual_router_id 100
    
    # 因为当前环境中VRRP组播有问题,改为使用单播发送VRRP报文
    # 如果VRRP组播没问题,以下这块的内容可以注释掉。
    # 这个地方需要关注,之前未做此设置,结果主备节点互相不能发现,因此主备节点都升级成了MASTER,并且绑定了VIP
#    unicast_src_ip 192.168.10.101
#    unicast_peer {
        # 主节点的 IP 地址
#        192.168.10.100
#    }
    
    # 设置优先级,确保主节点的优先级高过备用节点
    priority 80
    
    # 用于主备节点间同步检查的时间间隔
    advert_int 1
    
    # 设置主备节点间的通信验证类型及密码,同一个VRRP实例中需一致
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    
    # 设置虚拟IP地址,当keepalived状态切换为MASTER时,此IP会自动添加到系统中
    # 当状态切换到BACKUP时,此IP会自动从系统中删除
    # 可以通过命令ip addr查看切换后的状态
    virtual_ipaddress {
        # 虚拟IP地址
        192.168.10.180
    }
    
    # 集群资源监控,组合vrrp-script进行
    track_script {
        chk_nginx
    }
}

然后启动

# 启动命令 
service keepalived start  
# 查看服务状况
service keepalived status

出现以下界面表示启动成功

我们使用命令 ip  a 查看一下虚拟ip 是否绑定到了端口

可以看到备用服务并没有192.168.10.180 ip挂载。

访问 192.168.10.180 出现以下界面

我这里静态文件是使用nginx 代理的一个简单的界面。

四、校验高可用是否可行

我们把主服务器查找出来干掉 在访问

ps -ef |grep keepalived

使用kill 命令

现在已经把主服务器的keepalived服务关闭了!

访问 192.168.10.180 出现以下界面

linux界面 输入 ip a  发现ip也漂移到了备用服务器101

然后再启动主服务器发现 访问后界面变成了主服务的界面。

那我们的主从高可用就部署完成了。

五、常用命令

5.1、 service命令


# 添加到开机启动  
chkconfig keepalived on 

# 启动  
service keepalived start  


# 停止   
service keepalived stop 

# 重新启动 
service keepalived restart

# 查看服务状况 
service keepalived status 

5.2、systemctl 命令

# 启动 keepalived
systemctl start keepalived  

# 加入开机启动 keepalived
systemctl enable keepalived 

# 重新启动 keepalived
systemctl restart keepalived  

# 查看 keepalived 状态
systemctl status keepalived   

六、源码包安装–卸载

卸载keeplived工作路径
# 安装包的解压目录
cd /home/www/keepalived-2.2.8
make uninstal
删除相关文件
# 查看相关文件
find / -name keepalived

# 删除文件
 rm -rf /etc/sysconfig/keepalived
 rm -rf /etc/rc.d/init.d/keepalived
 rm -rf /etc/keepalived
 rm -rf /usr/sbin/keepalived
 rm -rf /usr/local/keepalived
 rm -rf /usr/local/keepalived/etc/keepalived
 rm -rf /usr/local/keepalived/etc/sysconfig/keepalived
 rm -rf /usr/local/keepalived/sbin/keepalived
 rm -rf /usr/local/keepalived/share/doc/keepalived
 rm -rf /home/www/keepalived-2.2.8/keepalived
 rm -rf /home/www/keepalived-2.2.8/keepalived/etc/sysconfig/keepalived
 rm -rf /home/www/keepalived-2.2.8/keepalived/etc/openrc/keepalived
 rm -rf /home/www/keepalived-2.2.8/keepalived/etc/keepalived
 rm -rf /home/www/keepalived-2.2.8/keepalived/etc/init.d/keepalived
 rm -rf /home/www/keepalived-2.2.8/keepalived/keepalived
 rm -rf /home/www/keepalived-2.2.8/bin/keepalived

到此 keepalived主从配置高可用已经实现! 如果你觉得对你有帮助请点赞 收藏谢谢!有什么更好的方式也可以在评论区评论!我会采集各位的意见的!

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值