nginx + keepalived

版权声明:everything https://blog.csdn.net/wanbf123/article/details/82686250

1、准备2台机器,192.168.1.11、192.168.1.12  vip 192.168.1.20

vip 的设置 即在2台已经分配好静态IP的机器中做如下配置(2台机器都要)


vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
#插入公共IP

IPADDR1=192.168.1.20


##配置完成莫忘记执行下面command

service network restart
systemctl stop firewalld

2、2台机器中都部署nginx 这个不赘述了,因为我做的是一主一备所以搭建的2台机器的nginx.conf配置是一致的

3、下载安装keepalived

#下载地址http://www.keepalived.org/
tar xf keepalived-1.3.4.tar.gz
mv keepalived-1.3.4 keepalived
cd keepalived
yum install -y libnl*
yum install -y libnfnetlink-devel zlib zlib-devel gcc gcc-c++ openssl openssl-devel openssh
./configure --prefix=/data/keepalived
make && make install

复制/sbin/keepalived到/usr/sbin下

cp /data/keepalived/sbin/keepalived /usr/sbin/

mkdir /etc/keepalived
cp /data/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
cp /data/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

复制启动脚本到/etc/init.d下

cd /data/keepalived-1.3.4
cp /usr/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
chmod 755 /etc/init.d/keepalived

4、配置keepalived配置文件 这里我把192.168.1.11当做主192.168.1.12当做备机

vi /etc/keepalived/keepalived.conf
##192.168.1.11

global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from Keepalived@localhost
   smtp_server [email protected]
   smtp_connect_timeout 30
   router_id 192.168.1.11
}
vrrp_script chk_nginx {
script "/etc/keepalived/ck_ng.sh"
    interval 2
    weight -5
    fall 3
    rise 2
}

vrrp_instance VI_1 {
    state MASTER
    interface eno16777736
    mcast_src_ip 192.168.1.11
    virtual_router_id 55
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
    192.168.1.20/24
        }
  track_script {
       chk_nginx
    }
  smtp_alert
}


##192.168.1.12 备机
global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from Keepalived@localhost
   smtp_server [email protected]
   smtp_connect_timeout 30
   router_id 192.168.1.11
}
vrrp_script chk_nginx {
script "/etc/keepalived/ck_ng.sh"
    interval 2
    weight -5
    fall 3
    rise 2
}

vrrp_instance VI_1 {
    state BACKUP
    interface eno16777736
    mcast_src_ip 192.168.1.12
    virtual_router_id 55
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
    192.168.1.20/24
        }
  track_script {
       chk_nginx
    }
  smtp_alert
}

5、启动2台机器的nginx 和keepalived

./nginx 

   配置完成后使用192.168.1.11和192.168.1.12访问2台nginx是可以访问的,但是使用虚拟的vip192.168.1.20访问是不可能访问通的,但是没有关系  ,在这2台机器中都启动keepalived就可以使用这个ip访问这个主备机器了,启动命令

service keepalived start

到此,主备nginx用keepalive配置完毕

6、验证配置是否成功

  由于如上我配置的master机器是192.168.1.11 ,备机是192.168.1.12,

       1)若将192.168.1.12这台机器的nginx宕机,使用192.168.1.20访问nginx不会受到影响,

       2)若将192.168.1.11这台机器的nginx宕机,使用192.168.1.20访问nginx会受到影响,大约10s会自动恢复,去访问备机。至于为何10s恢复这个和上面的keepalived配置有关

       3)通过access.log去查看请求都是进入主机并且都是192.168.1.20 转发的304请求

猜你喜欢

转载自blog.csdn.net/wanbf123/article/details/82686250
今日推荐