nginx keepalived高可用集群主从模式

2 篇文章 0 订阅

hostname

ip说明
proxy-01172.0.5.108keepalived主节点nginx主负载均衡
proxy-02172.0.5.39keepalived备节点nginx辅负载均衡
VIP172.0.5.199客户机

1、在所有节点上配置

# systemctl stop firewalld         //关闭防火墙
# sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/sysconfig/selinux    //关闭selinux,重启生效
# setenforce 0                //关闭selinux,临时生效
# ntpdate 0.centos.pool.ntp.org    //时间同步
# yum install nginx -y           //安装nginx

2、在两个节点上安装nginx

安装步骤参考:Liunx 安装Nginx

3、安装keepalived

yum install -y keepalived

4、修改两个节点的hosts

[root@172-0-5-239 keepalived]# vim /etc/hosts
[root@172-0-5-239 keepalived]# 127.0.0.1   proxy-01
[root@172-0-5-108 keepalived]# vim /etc/hosts
[root@172-0-5-108 keepalived]# 127.0.0.1   proxy-02

5、防止脑裂产生问题,主备都采用不争抢模式nopreempt

且本质为先启动的keepalived节点即为主节点

! Configuration File for keepalived

global_defs {
   router_id edu-proxy-01
}

vrrp_instance VI_1 {
    state BACKUP            #主备都是backup
    nopreempt                #备没有这个
    interface ens33
    virtual_router_id 51
    mcast_src_ip 172.0.5.239
    priority 110            #备要小于110
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
 
    virtual_ipaddress {
        172.0.5.199/24 dev ens33 label ens33:1
    }
}
virtual_server 172.0.5.199 80 {
    delay_loop 3
    lb_algo rr
    lb_kind DR
   # persistence_timeout 1
    protocol TCP
    real_server 172.0.5.239 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
    real_server 172.0.5.108 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}        

 

6、启动keepalived并加入开机自启、查看keepalived状态

systemctl start keepalived 
systemctl enable keepalived 
systemctl status keepalived 

7、查看ip,主节点多了inet 172.0.5.199/24 scope global secondary ens33:1

[root@172-0-5-239 sbin]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:58:8f:95 brd ff:ff:ff:ff:ff:ff
    inet 172.0.5.239/24 brd 172.0.5.255 scope global dynamic ens33
       valid_lft 72248sec preferred_lft 72248sec
    inet 172.0.5.199/24 scope global secondary ens33:1
       valid_lft forever preferred_lft forever
    inet6 fe80::c64c:250:9d45:6317/64 scope link 
       valid_lft forever preferred_lft forever
[root@172-0-5-239 sbin]# 


1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:a3:1b:55 brd ff:ff:ff:ff:ff:ff
    inet 172.0.5.108/24 brd 172.0.5.255 scope global dynamic ens33
       valid_lft 72209sec preferred_lft 72209sec
    inet6 fe80::393e:4b07:bc68:157f/64 scope link 
       valid_lft forever preferred_lft forever
[root@172-0-5-108 keepalived]# 

8、通过虚拟VIP访问

9、当主节点keepalived挂了之后,虚拟VIP会飘到备用keepalived节点上

[root@172-0-5-108 keepalived]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:a3:1b:55 brd ff:ff:ff:ff:ff:ff
    inet 172.0.5.108/24 brd 172.0.5.255 scope global dynamic ens33
       valid_lft 72087sec preferred_lft 72087sec
    inet 172.0.5.199/24 scope global secondary ens33:1
       valid_lft forever preferred_lft forever
    inet6 fe80::393e:4b07:bc68:157f/64 scope link 
       valid_lft forever preferred_lft forever
[root@172-0-5-108 keepalived]# 

 

10、检测nginx脚本

[root@172-0-5-108 nginx]# cat chk_web.sh 
#!/bin/bash
while true
do
if [ `ps -ef | grep nginx | grep -v grep | wc -l`  -lt 2 ]
   then
   systemctl stop keepalived
fi
sleep 10
done

[root@172-0-5-108 nginx]# chmod 755 chk_web.sh 

[root@172-0-5-108 nginx]# sh chk_web.sh &

 

参考链接:

企业级Nginx负载均衡与keepalived高可用实战视频教程

Nginx-keepalived+Nginx实现高可用集群

split-brain 脑裂问题(Keepalived)

18.3/18.4/18.5 用keepalived配置高可用集群

keepalived的抢占与非抢占模式

keepalived之vrrp_script详解

高可用实践——Keepalived踩坑记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值