keepalived+nginx高可用跳板机(4)

试验环境  proxy1 192.168.25.90 master

          Proxy2 192.168.25.91  slave

      Keepalived  虚拟ip  192.168.25.100

  关闭防火墙  systemctl disable firewalld --now

  关闭selinux  setenforce 0

   Sed -i  ‘7s/enforking/disabled’  /etc/selinux/config

配置yum源

Curl-o/etc/yum.repos.d/Centos-7.repo  http://mirrors.aliyun.com/repo/Centos-7.repo

yum安装基础包 gcc make pcre-devel openssl-devel  bash-completion

Net-tools keepalived  

源码编译安装nginx  

解压nginx-1.8.tar.gz  cd 到解压目录

./configure --with-http_ssl_module --wiht-http_stub_status --with-stream

Make && make install

因为nginx是源码编译的所以没有service文件,当然也可以自己手写service文件,

具体方法百度

Upstream web {

Server 192.168.25.90:8888;

Server 192.168.25.91:8888;

}

Location / {

Proxy_pass http://web;

}

/usr/local/sbin/nginx 开启nginx  

/usr/local/sbin/nginx -s reload 重启

/usr/loacl/sbin/nginx -s stop  关闭

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.200.1    #邮件服务器

   smtp_connect_timeout 30

   router_id nginx_backup

}

vrrp_script check_nginx {

    script "/etc/keepalived/nginx_check.sh"  #nginx状态检查脚本

    interval 2   #间隔

    weight -30

}

vrrp_instance VI_1 {

    state MASTER  #主服务器 也就是虚拟ip所在的服务器   

    interface ens192  #网卡名,必须跟需要使用的网卡名称一致

    virtual_router_id 51   #序列号

    priority 100  #优先级默认是100

    advert_int 1

        authentication {

        auth_type PASS

        auth_pass 1111

    }

    track_script {  #启动脚本

    check_nginx  #脚本的名称

    }

    virtual_ipaddress {

        192.168.25.95/24 #vip 也就是虚拟ip

    }

}

配置完毕 配置slave服务器 别的配置都大体一致就是keepalived的配置文件需要修改

! 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.200.1

   smtp_connect_timeout 30

   router_id nginx_backup

}

vrrp_script check_nginx {

    script "/etc/keepalived/nginx_check.sh"

    interval 2

    weight -30 #脚本执行失败则减30优先值

}

vrrp_instance VI_1 {

    state BACKUP   #slave服务器这里是BACKUP

    interface ens192

    virtual_router_id 51

    priority 80  #优先值不同

    advert_int 1

 authentication {

        auth_type PASS

        auth_pass 1111

    }

    track_script {

    check_nginx

    }

    virtual_ipaddress {

        192.168.25.95/24   

    }

}

配置完毕重启keepalived

脚本: /etc/keepalived/nginx_check.sh

#!/bin/bash

num=`ps -C nginx --no-header |wc -l `

if [ $num -eq 0 ]; then

     /usr/local/nginx/sbin/nginx

     sleep 2

     if [ ` ps -C nginx --no-header |wc -l ` -eq 0 ];then

         Exit 1

     fi

fi

Nginx状态检查 脚本的大体意思是 检查nginx进程 当进程号的数量等于0时 开启nginx服务,等待俩秒再次检查nignx的进程数量,当进程的数量还是等于0,则认定这台服务器上的nginx出现故障,然后退出返回错误码非0,keepalived就会自动降级,从而实现跳转ip    

 

都配置完毕后可以ip a s 查看ip 这里可以看到ens192上增加了虚拟ip 25.95,如果没有master上没有ip则重启所有的keepalived服务,等待俩秒再次查看,如果还是没有虚拟ip

可能是配置文件写错了 或者俩台主机不能正常通信,所以无法获取虚拟ip,具体原因可以查看keepalived的日记文件 默认在/var/log/message下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Keepalived一个用于实现高可用性的软件,它可以在多个服务器之间共享一个虚拟IP地址,以确保在某个服务器故障时,其他服务器可以接管服务并继续提供服务。而Nginx一个高性能的Web服务器,它可以作为反向代理服务器,将客户端请求转发到后端的多个Web服务器上,以实现负载均衡和高可用性。因此,将KeepalivedNginx结合使用可以实现高可用性的Web服务。 具体实现步骤如下: 1. 在多台服务器上安装Nginx,并将Nginx配置为反向代理服务器,将客户端请求转发到后端的多个Web服务器上。 2. 在多台服务器上安装Keepalived,并将Keepalived配置为共享一个虚拟IP地址,以确保在某个服务器故障时,其他服务器可以接管服务并继续提供服务。 3. 编写一个脚本文件nginx_check.sh,用于检查Nginx是否正常运行,如果Nginx停止运行,则关闭Keepalived,以确保虚拟IP地址可以在其他服务器上接管服务。 参考上述引用和引用,可以看出具体实现步骤如下: 1. 将Nginx配置为反向代理服务器,将客户端请求转发到后端的多个Web服务器上。 2. 在多台服务器上安装Keepalived,并将Keepalived配置为共享一个虚拟IP地址,以确保在某个服务器故障时,其他服务器可以接管服务并继续提供服务。 3. 编写一个脚本文件nginx_check.sh,用于检查Nginx是否正常运行,如果Nginx停止运行,则关闭Keepalived,以确保虚拟IP地址可以在其他服务器上接管服务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值