nginx+keepalived简单双机主从热备(集群版)

目标:

  主nginx 172.25.62.101
  从nginx 172.25.62.102
  虚拟ip 172.25.62.115  

一.安装nginx

1.安装nginx相关依赖(如果已经安装请跳过)
  mkdir /home/nginx  #新建nginx目录
  a.安装gcc gcc-c++
    yum install -y gcc gcc-c++
  b.安装PCRE库
    cd /home/nginx/
    wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz
    tar -zxvf pcre-8.33.tar.gz
    cd pcre-8.33
    ./configure
    make && make install
  c.安装SSL库
    cd /home/nginx/
    wget http://www.openssl.org/source/openssl-1.0.1j.tar.gz
    tar -zxvf openssl-1.0.1j.tar.gz
    cd openssl-1.0.1j
   ./config
    make && make install
  d.安装zlib库存
    cd /home/nginx/
    wget http://zlib.net/zlib-1.2.11.tar.gz
    tar -zxvf zlib-1.2.11.tar.gz
    cd zlib-1.2.11
   ./configure
    make && make install
    
2.安装nginx
    cd /home/nginx/
    wget http://nginx.org/download/nginx-1.8.0.tar.gz
    tar -zxvf nginx-1.8.0.tar.gz
	cd nginx-1.8.0 
	./configure
	make && make install
	
3.	启动nginx
    /usr/local/nginx/sbin/nginx
    ps -ef|grep nginx  #查看nginx进程

二.安装keepalived

1.下载keepalived
   cd /home/nginx/
   wget http://www.keepalived.org/software/keepalived-1.2.18.tar.gz
   
2.解压安装:
   tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/
   
3.下载插件openssl
   yum install -y openssl openssl-devel(需要安装一个软件包)
   
4.开始编译keepalived
   cd keepalived-1.2.18/ && ./configure --prefix=/usr/local/keepalived
   
5.make一下
   make && make install
   
6.复制脚本文件,建立软连接
   mkdir /etc/keepalived
   cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/  #复制脚本文件
   cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/  #复制脚本文件
   cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/  #复制脚本文件
   ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/    #建立软连接
   chkconfig keepalived on  #设置开机自启动
   
7.修改keepalived配置文件
   vi /etc/keepalived/keepalived.conf
   vrrp_script chk_nginx {
	    script "/etc/keepalived/nginx_check.sh" #自动开启服务,该脚本在下面
	    interval 2 #检测时间间隔
	    weight -20 #如果条件成立的话,则权重 -20
	}
    vrrp_instance VI_1 {
    state MASTER #来决定主从
    interface ens160# 绑定虚拟 IP 的网络接口,根据自己的机器填写,linux通过ip a 来查看
    virtual_router_id 121 # 虚拟路由的 ID 号, 两个节点设置必须一样
    mcast_src_ip 172.25.62.101 #填写本机ip
    priority 100 # 节点优先级,主要比从节点优先级高
    nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
    advert_int 1 # 组播信息发送间隔,两个节点设置必须一样,默认 1s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 将 track_script 块加入 instance 配置块
    track_script {
        chk_nginx #执行 Nginx 监控的服务
    }
    virtual_ipaddress {
        172.25.62.115 #必须和本机ip在同一个网段
    }
}

上面interface填写的值,如下图查看
在这里插入图片描述
以下是开机自启动脚本:nginx_check.sh

#!/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

说明:该脚本放在 cd /etc/keepalived/目录

三.keepalived

 service keepalived start  #启动keepalived
 service keepalived stop   #停止keepalived
 service keepalived restart  #停止重启keepalived

输入 ip a 查看虚拟ip
在这里插入图片描述
这样我们就配好了主nginx和主keepalived

那么接下来按相同的方法配置从nginx和从keepalived即可,只需要修改从keepalived配置文件:

  vi /etc/keepalived/keepalived.conf    #进入从keepalived配置文件
  vrrp_script chk_nginx {
   		    script "/etc/keepalived/nginx_check.sh" #自动开启服务,该脚本在下面
   		    interval 2 #检测时间间隔
   		    weight -20 #如果条件成立的话,则权重 -20
   		}
   	vrrp_instance VI_1 {
   	    state MASTER #来决定主从
   	    interface ens160# 绑定虚拟 IP 的网络接口,根据自己的机器填写,linux通过ip a 来查看
   	    virtual_router_id 121 # 虚拟路由的 ID 号, 两个节点设置必须一样
   	    mcast_src_ip 172.25.62.102 #填写本机ip
   	    priority 99# 节点优先级,主要比从节点优先级高
   	    nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
   	    advert_int 1 # 组播信息发送间隔,两个节点设置必须一样,默认 1s
   	    authentication {
   	        auth_type PASS
   	        auth_pass 1111
   	    }
   	    # 将 track_script 块加入 instance 配置块
   	    track_script {
   	        chk_nginx #执行 Nginx 监控的服务
   	    }
   	    virtual_ipaddress {
   	        172.25.62.115 #必须和本机ip在同一个网段
   	    }
   	}

四.启动从nginx和从keepalived

在这里插入图片描述
此时从keepalived是没有生成虚拟ip的,有虚拟ip的是主keepalived,只有当主nginx挂了之后,从keepalived才生成相同的虚拟ip

五.测试一下

通过虚拟ip访问主nginx
在这里插入图片描述
当主nginx挂了之后,
在这里插入图片描述
此时跳转到从nginx,这时从服务器生成了虚拟ip
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值