Keepalived+Nginx高可用集群

来源:互联网 发布:网络文明传播志愿活动 编辑:程序博客网 时间:2024/05/29 06:51

安装环境:centos6.6 X64

nginx版本:1.9.3

keepalived版本:1.2.18


配置规划:

 IPVIP主节点192.168.11.21192.168.11.20备节点192.168.11.22192.168.11.20


一、安装Nginx

1、安装准备

1.1、安装openssl

# tar -zxvf openssl-1.0.0s.tar.gz

# ./configure

# make && make install

2、解压pcre

# tar -zxvf pcre-7.8.tar.gz

3、安装nginx

# tar -zxvf nginx-1.9.3.tar.gz

# cd nginx-1.9.3

# ./configure --prefix=/usr/local/nginx--with-pcre=/usr/local/src/pcre-7.8

# make && make install

 设置Nginx开机启动,编辑/etc/rc.local文件,在末尾添加如下内容:

/usr/loca/nginx/sbin/nginx


二、安装Keepalived

# tar -zxvf keepalived-1.2.18.tar.gz

# cd keepalived-1.2.18

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

# make && make install

将keepalived安装成Linux系统服务:

# 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/sbin/keepalived /usr/sbin/

#ln -s /usr/local/keepalived/sbin/keepalived /sbin/


设置keepalived服务开机启动

# chkconfig keepalived on


修改Keepalived配置文件

(1) MASTER节点配置文件(192.168.11.21)

# vi/etc/keepalived/keepalived.conf


! Configuration File for keepalived

global_defs {
    router_id 21
}

vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh"
    interval 2
    weight -20
}

vrrp_instance VI_1 {
    #state MASTER
    state BACKUP
    interface eth2
    virtual_router_id 51
    priority 100
    advert_int 1
    nopreempt
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.11.20
    }
    track_script {
        chk_nginx
    }
}

(2)BACKUP节点配置文件(192.168.11.22):

# vi/etc/keepalived/keepalived.conf


! Configuration File for keepalived

global_defs {
    router_id 22
}

vrrp_script chk_nginx { 
    script "/etc/keepalived/nginx_check.sh"
    interval 2   
    weight -20 
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth3
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.11.20
    }
    track_script { 
    chk_nginx
   
}


编写Nginx状态检测脚本/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
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
service keepalived stop
fi
fi

保存后,给脚本赋执行权限:

# chmod +x /etc/keepalived/nginx_check.sh


关闭防火墙:

#service iptable stop

分别在两台主机上启动Nginx和Keepalived

# /usr/loca/nginx/sbin/nginx

 # service keepalived start


查看虚拟IP添加是否成功(红色部分为VIP

# ip a

eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdiscpfifo_fast state UP qlen 1000

   link/ether 00:0c:29:2e:4c:00brd ff:ff:ff:ff:ff:ff

   inet 192.168.11.21/24 brd192.168.152.255 scope global eth1

   inet 192.168.11.20/32scope global eth1

   inet6fe80::20c:29ff:fe2e:4c00/64 scope link

      valid_lft foreverpreferred_lft forever



0 0