Nginx加Keepalived实现高可用

   日期:2020-06-04     浏览:159    评论:0    
核心提示:准备虚拟机(已安装nginx),安装教程:链接地址设置固定IP:链接地址Keepalived官网地址:https://www.keepalived.org/下载地址:https://yonxin.lanzous.com/b00zjg5hi密码:4aru先安装gcc和gcc++yuminstallgccyuminstallgcc-c++解压缩keepalived到指定目录tar-zxvfkeepalived-1.4.2.tar..
  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,欢迎大家加入。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服