IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux虚拟机 配置keepalived+nginx 实现双机热备(离线安装+简单配置+测试) -> 正文阅读

[系统运维]Linux虚拟机 配置keepalived+nginx 实现双机热备(离线安装+简单配置+测试)

准备两台linux服务器
例:主:192.168.1.17 备:192.168.1.18 虚拟ip:192.168.1.101
安装配置 nginx 的略过不提,有需要请查阅 nginx 相关文档

1.准备 keepalived的安装环境 安装keepalived

1.1、安装popt
上传keepalived-1.1.20.tar.gz、daemon-0.6.4.tar.gz和 popt_1.18.orig.tar.gz

解压压缩文件
# tar -zxvf popt_1.18.orig.tar.gz
进入目录
# cd popt-1.18/
离线安装
# ./configure
# make && make install 

1.2、安装daemon-0.6.4.tar

解压压缩文件
# tar -zxvf daemon-0.6.4.tar.gz
# cd daemon-0.6.4
# ./configure
# make && make install	

1.3、安装 keepalived

解压压缩文件
# tar -zxvf keepalived-1.1.20.tar.gz
# cd keepalived-1.1.20/
# ./configure --prefix=/usr/local/keepalived  --sysconf=/etc
# make && make install	

1.4、查看是否安装成功 查看版本号

# keepalived -v 

1.5、配置环境、启动脚本等

# 将keepalived主程序加入到环境变量(安装目录下)
# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived

# 去keepalived启动脚本(源码目录下),放到/etc/init.d/目录下就可以使用service命令便捷调用
# cp /root/keepalived-2.2.7/keepalived/etc/init.d/keepalived /etc/init.d/keepalived 

# 如果/usr/local/sbin/已存在可以忽略
# cp /usr/local/keepalived/sbin/keepalived /usr/local/sbin/

查看/etc/rc.d/init.d/functions文件和文件夹是否存在  没有的话创建这个路径和文件夹 运行下面指令  否则启动时会出错
# ln -s /lib/lsb/init-functions /etc/rc.d/init.d/functions

1.6 查看启动文件配置 修改配置文件为具体路径 避免启动出错

# 查看启动配置
vim /etc/sysconfig/keepalived

# 注释掉原有的 KEEPALIVED_OPTIONS="-D"
#KEEPALIVED_OPTIONS="-D"

# 添加 配置文件路径
KEEPALIVED_OPTIONS="-f /etc/keepalived/keepalived.conf.sample -D -d -S 0"

1.7 keepalived 启动日志路径

# 常用Liunx环境下
# tail -555f /var/log/messages

# 银河麒麟国产环境下
# tail -555f /var/log/syslog

2.keepalived 常用指令

# 启动
# systemctl start keepalived.service
# 停止
# systemctl stop keepalived.service
# 状态
# systemctl status keepalived.service

到此可以启动一下 查看状态是否可以启动成功

3. keepalived 配置文件

1.打开配置文件路径 修改配置

# /etc/keepalived/keepalived.conf

2.主 192.168.1.17 配置文件

# 可直接复制替换所有内容
! Configuration File for keepalived
global_defs {
 router_id LVS_DEVEL
}
# nginx 监听脚本 如果nginx 挂掉 会停止 当前服务器的 keepalived 切换到另一台服务器
vrrp_script chk_nginx{
	 script "/etc/keepalived/nginx_check.sh"#  执行脚本所在的位置
	 interval 2 	#  检测脚本执行的间隔,单位秒,每个2秒执行一次脚本
	 weight 2
}

vrrp_instance VI_1 {  # 定义一个实例
    state MASTER   #  主服务 必须要是 MASTER  
    interface eth0 #  指定监测网络的接口,当LVS接管时,将会把IP地址添加到该网卡上。  改为自己本地IP 所用的 网口 # ip addr 来查看网口
    virtual_router_id 101 #  虚拟路由标识,同一个vrrp实例使用唯一的标识,同一个vrrp_instance下,MASTER和BACKUP必须一致。
    priority 100   #  指定这个实例优先级  主备值差不要超过 10
#    unicast_src_ip 192.168.1.17  # 配置单播的源地址
#    unicast_peer { 
#        192.168.1.18  #  配置单播的目标地址
#    }   
    advert_int 1       #  心跳报文发送间隔
    authentication {
        auth_type PASS      #  设置验证类型,主要有PASS和AH两种
        auth_pass test123   #  设置验证密码,同一个vrrp_instance下,MASTER和BACKUP的密码必须一致才能正常通信
    }
    virtual_ipaddress {     #  设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
        192.168.1.101       #  自定义的 虚拟ip  VIP  也是测试时需要访问的ip
    }
    track_script {
        chk_nginx
    }
}

3.备 192.168.1.18 配置文件

# 可直接复制替换所有内容
! Configuration File for keepalived
global_defs {
 router_id LVS_DEVEL2
}
# nginx 监听脚本 如果nginx 挂掉 会停止 当前服务器的 keepalived 切换到另一台服务器
vrrp_script chk_nginx{
	 script "/etc/keepalived/nginx_check.sh"#  执行脚本所在的位置
	 interval 2 	#  检测脚本执行的间隔,单位秒,每个2秒执行一次脚本
	 weight 2
}

vrrp_instance VI_1 {  # 定义一个实例
    state BACKUP   #  备服务 必须要是 BACKUP
    interface eth0 #  指定监测网络的接口,当LVS接管时,将会把IP地址添加到该网卡上。  改为自己本地IP 所用的 网口
    virtual_router_id 101 #  虚拟路由标识,同一个vrrp实例使用唯一的标识,同一个vrrp_instance下,MASTER和BACKUP必须一致。
    priority 90   #  指定这个实例优先级  主备值差不要超过 10
#    unicast_src_ip 192.168.1.18  # 配置单播的源地址
#    unicast_peer { 
#        192.168.1.17  #  配置单播的目标地址
#    }   
    advert_int 1       #  心跳报文发送间隔
    authentication {
        auth_type PASS      #  设置验证类型,主要有PASS和AH两种
        auth_pass test123   #  设置验证密码,同一个vrrp_instance下,MASTER和BACKUP的密码必须一致才能正常通信
    }
    virtual_ipaddress {     #  设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
        192.168.1.101       #  自定义的 虚拟ip  VIP  也是测试时需要访问的ip
    }
    track_script {
        chk_nginx
    }
}

4.nginx_check.sh 脚本文件

# 在/etc/keepalived/路径下创建 nginx_check.sh  文件
# 加入以下内容
#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
 /usr/local/nginx/sbin/nginx 	#Nginx启动命令的位置
 sleep 2
 if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
 killall keepalived
 fi
fi

4.启动 keepalived 服务

1.启动主服务器keepalived 服务

# 打开启动日志
# tail -555f /var/log/messages

# systemctl start keepalived
# 出现以下内容
 Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE
 Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE
 Keepalived_vrrp: VRRP_Instance(VI_1) setting protocol VIPs.
 Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs       Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on enp11s0 for 192.168.109.101
# Entering MASTER STATE 代表以 主服务器  启动

# 执行 ip addr 查看是否生成 虚拟ip
# 如果 **** 自定义的 VIP 虚拟ip 代表配置成功
# ip addr
  inet 192.168.1.101/32 scope global enp11s0

2.启动备服务器keepalived 服务

# 打开启动日志
# tail -555f /var/log/messages

# systemctl start keepalived
# 出现以下内容
 Keepalived_vrrp: VRRP_Instance(VI_1) Entering BACKUP STATE
# Entering BACKUP STATE 代表以 备服务器  启动

# 执行 ip addr 查看是否生成 虚拟ip
# 如果 **没有** 自定义的 VIP 虚拟ip 代表配置成功
  inet 192.168.1.101/32 scope global enp11s0

5.测试 keepalived 主备 切换

# 执行 主服务 keepalivde 的停止命令
# systemctl stop keepalived

# 查看 17 主服务的 192.168.1.101 是否还存在
# ip addr 
# 如果 inet 192.168.1.101/32 scope global enp11s0 不存在 为正常

# 查看 18 备服务器 192.168.1.101 是否存在
# ip addr 
# 如果 inet 192.168.1.101/32 scope global enp11s0 存在 标识切换成功

# 也可以查看 18 备服务器日志
# tail -555f /var/log/messages 
# 如果 18 备服务器日志出现 

 Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE
 Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE
 # 也代表  主备切换成功	

6. nginx 测试 以 https 443 接口为例

#  17服务器 https://192.168.1.17:443/ 
#  18服务器 https://192.168.1.17:443/
# 测试keepalived访问  http://192.168.1.101:443/
# 如果访问可以通过 标识keepalived+nginx 正常
# systemclt stop keepalived 停掉 17 主服务器 
# 测试keepalived访问  http://192.168.1.101:443/
# 内容为  18服务器 https://192.168.1.17:443/

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 18:00:11  更:2022-03-12 18:01:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:31:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码