Nginx加Keepalived实现高可用

  1. 准备虚拟机(已安装nginx), 安装教程 : 链接地址
  2. 设置固定 IP : 链接地址
  3. Keepalived
  4. 官网地址 : https://www.keepalived.org/
  5. 下载地址 : https://yonxin.lanzous.com/b00zjg5hi
    密码 : 4aru
  6. 先安装 gcc 和 gcc++

yum install gcc
yum install gcc-c++

  1. 解压缩keepalived到指定目录

tar -zxvf keepalived-1.4.2.tar.gz -C /usr/local/src/

安装openssl

yum install -y openssl openssl-devel

在这里插入图片描述
在这里插入图片描述

安装Keepalived

  1. 解压缩keepalived到指定目录

tar -zxvf keepalived-1.4.2.tar.gz -C /usr/local/src/

  1. 如图
    在这里插入图片描述
  2. 进入解压目录

cd /usr/local/src/keepalived-1.4.2

  1. 执行配置

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

  1. 如图
    在这里插入图片描述
    在这里插入图片描述
  2. 编译安装

make && make install

  1. 如图
    在这里插入图片描述
    在这里插入图片描述

初始化配置及启动测试:

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

在这里插入图片描述

  1. 配置 keepalived 命令可以在任意目录下执行

cp /usr/local/keepalived/sbin/keepalived /usr/local/bin/

在这里插入图片描述
2. 将 keepalived 脚本放到 /etc/init.d/目录下

cp /usr/local/src/keepalived-1.4.2/keepalived/etc/init.d/keepalived /etc/init.d/

在这里插入图片描述
3. 拷贝 keepalived.conf 配置文件到 /etc/keepalived/目录下, 当 keepalived 启动的时候默认就会到 /etc/keepalived/ 目录下找配置文件

mkdir /etc/keepalived cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

在这里插入图片描述
4. 启动、关闭、重启、查看状态

service keepalived start|stop|restart|status

  1. 启动 keepalived 服务

在这里插入图片描述
6. 启动完后查看状态发现启动失败, 说配置文件有错误, 如图
在这里插入图片描述
上述错误下面解决

准备从机

  1. 关闭当前主机(避免ip冲突), 克隆一台
  2. 选中当前主机, 右键 管理 克隆
    在这里插入图片描述
  3. 然后下一步, 下一步, 创建完整的克隆
    在这里插入图片描述
  4. 然后选择修改虚拟机名称, 及克隆存放路径
    在这里插入图片描述
  5. 等待完成关闭即可
  6. 重置网卡mac地址
    在这里插入图片描述
  7. 修改静态IP , 配置文件修改 : 链接地址
  8. 手动修改
    在这里插入图片描述
  9. 按一下关闭打开即可生效
    在这里插入图片描述
  10. 然后启动主机

主备配置文件修改

  1. 修改主服务器keepalived.conf配置文件

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }

   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.230.201
   smtp_connect_timeout 30
   router_id nginx_master
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
#检测脚本定义
vrrp_script chk_http_port {
    script "/etc/keepalived/nginx_check.sh"
    interval 2   # 脚本执行的间隔
    weight   2   # 权重等级
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    #主从的优先级, 主机一定要大于从机
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # VIP: 提供给外部访问的地址, 必须和主从在同一个网段内, 主从地址不能相同
    virtual_ipaddress {
        192.168.230.190
    }
}

  1. 如图
    在这里插入图片描述
  2. 修改完后按 esc 删除没用的行, 保存退出!

d200d

  1. 修改从机服务器 keepalived.conf配置文件

vim /etc/keepalived/keepalived.conf

  1. 如图
    在这里插入图片描述
  2. 修改完后按 esc 删除没用的行, 保存退出!

d200d

主从服务器创建相同的检查脚本文件

  1. 主机在 /etc/keepalived/目录下创建 nginx_check.sh脚本配置文件

vim /etc/keepalived/nginx_check.sh

  1. 写入一下脚本
#!/bin/bash
A=`ps -C nginx -no-header |wc -l`
if [ $A -eq 0 ];then
  /usr/local/nginx/sbin/nginx
  sleep 2
  if [ `ps -C nginx --no-header |wc -l` -eq 0];then
    killall keepalived
  fi
fi
  1. 如图
    在这里插入图片描述
  2. 保存退出!
  3. 从机操作和上面一样
  4. nginx_check.sh 文件设置可执行权限,[ 主从都要设置 ]

chmod 777 /etc/keepalived/nginx_check.sh

在这里插入图片描述

配置完信息后在主从机中分别启动nginx 和 keepalived

在这里插入图片描述

测试

  1. 修改主备nginx的index.html 页面显示内容区分主备

vim /usr/local/nginx/html/index.html

  1. 添加一句话测试, 如图在这里插入图片描述
  2. 在浏览器地址栏输入配置的虚拟IP访问成功能, 表示高可用搭建完成!!

双主模式

  1. 在主机keepalived.conf最后一行添加
vrrp_instance VI_2 {
    state BACKUP
    interface ens33
    virtual_router_id 52
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111 
    }
    virtual_ipaddress {
        192.168.230.191
    }
}

在这里插入图片描述
2. 在从机keepalived.conf最后一行添加

vrrp_instance VI_2 {
    state MASTER
    interface ens33
    virtual_router_id 52
    priority 190
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111 
    }
    virtual_ipaddress {
        192.168.230.191
    }
}

在这里插入图片描述
3. 修改完后重新加载配置文件

service keepalived reload

感谢阅读, 如有什么更好的建议或方法 ,可以留言或进群交流:1101584918,欢迎大家加入。

猜你喜欢

转载自blog.csdn.net/Lance_welcome/article/details/106482005