如果公司只有两个技术人员A和B,A负责项目1,B负责项目2。有一天A的老婆要生孩子了,请假照顾老婆去了;这时候项目1就被搁置了,CTO也为此很担忧,没人维护项目1,一旦有了bug,业务可能被暂停。这时候老板看见B在走廊抽烟,就把B训斥了一顿,让他回去继续干活儿。刚好CTO经过此地,看见此情此景,就找到了B,安慰他,然后让他有空的时候兼顾一下项目2,于是就把两个项目的事情都托付给了B去做了。以后当B请假,A也可以同时兼顾项目1,项目2的工作。

看到上面的例子,有没有想起 我们刚学的Keepalived高可用呢?其实,在keepalived中也有会这样的情况出现,比如说,有www.daydayup.com和bbs.daydayup.com两个域名都解析都我们的负载均衡服务器上,我们也只有两台反向代理服务器,此时我们应该如何去做两个域名的双向高可用(互为主备)呢?

lb01的Keepalived配置如下 :

global_defs {
   router_id lb01_lvs
}

vrrp_instance group01 {                       ###group01
    state MASTER                              ###MASTER描述
    interface eth0
    virtual_router_id 51                      ###
    priority 150                              ###主的权重大
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }   
    virtual_ipaddress {
        10.0.0.3/24 dev eth0 label eth0:1     ###监听地址10.0.0.3
    } 
} 

vrrp_instance group02 {                       ###group02
    state BACKUP                              ###BACKUP描述
    interface eth0
    virtual_router_id 52                      ###
    priority 100                              ###备用的权重小
    advert_int 1 
    authentication {
        auth_type PASS
        auth_pass 1111
    }   
    virtual_ipaddress {
        10.0.0.4/24 dev eth0 label eth0:1     ###监听地址10.0.0.4
    }   
    
} 


lb02的Keepalived配置如下 :

vrrp_instance group01 {              ####10.0.0.3 BACKUP
    state BACKUP
    interface eth0
    virtual_router_id 51             #
    priority 100                     #
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }   
    virtual_ipaddress {
        10.0.0.3/24 dev eth0 label eth0:1     #
    }   
}
vrrp_instance group02 {              ###10.0.0.4 MASTER
    state MASTER
    interface eth0
    virtual_router_id 52             #
    priority 150                     #
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }   
    virtual_ipaddress {
        10.0.0.4/24 dev eth0 label eth0:1   #
    }   
}

 

lb01的Nginx配置如下 :

     upstream default1{
        server 172.16.1.5:8080;
     }
     upstream default2{
        server 172.16.1.6:8080;
     }

     server {
        listen      80;
        server_name 10.0.0.3;                     ###监听地址
        location / {
          proxy_pass http://default1;
          proxy_set_header host $host;
          proxy_set_header X-Forwarded-For $remote_addr;
        }

    }
     server {
        listen      80;
        server_name 10.0.0.4;                      ####监听地址
        location / {
          proxy_pass http://default2;
          proxy_set_header host $host;
          proxy_set_header X-Forwarded-For $remote_addr;
        }

    }

###Nginx修改ip后,采用sbin/nginx -s stop,sbin/nginx 启动
 

lb02的Nginx配置如下 :

     upstream default1{
        server 172.16.1.5:8080;
     }
     upstream default2{
        server 172.16.1.6:8080;
     }
     server {
        listen       80;
        server_name  10.0.0.3;
        location / {
          proxy_pass http://default1;
          proxy_set_header host $host;
          proxy_set_header X-Forwarded-For $remote_addr;
        }
    }
     server {
        listen       80;
        server_name  10.0.0.4;
        location / {
          proxy_pass http://default2;
          proxy_set_header host $host;
          proxy_set_header X-Forwarded-For $remote_addr;
        }
    }

###Nginx修改ip后,采用sbin/nginx -s stop,sbin/nginx 启动

 

查看lb01的IP信息:

[root@lb01 application]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:93:a7:84 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.5/24 brd 10.0.0.255 scope global eth0
    inet 10.0.0.3/24 scope global secondary eth0:1          ###监控IP:10.0.0.3
    inet6 fe80::20c:29ff:fe93:a784/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:93:a7:8e brd ff:ff:ff:ff:ff:ff
    inet 172.16.1.5/24 brd 172.16.1.255 scope global eth1
    inet6 fe80::20c:29ff:fe93:a78e/64 scope link 
       valid_lft forever preferred_lft forever
[root@lb01 application]# 

 

查看lb02的IP信息

[root@lb02 tools]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:0d:3a:d6 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.6/24 brd 10.0.0.255 scope global eth0
    inet 10.0.0.4/24 scope global secondary eth0:1           ###监控Ip:10.0.0.4
    inet6 fe80::20c:29ff:fe0d:3ad6/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:0d:3a:e0 brd ff:ff:ff:ff:ff:ff
    inet 172.16.1.6/24 brd 172.16.1.255 scope global eth1
    inet6 fe80::20c:29ff:fe0d:3ae0/64 scope link 
       valid_lft forever preferred_lft forever


测试:
关闭lb01或者lb02的keepalived服务:

[root@lb01 application]# /etc/init.d/keepalived stop
Stopping keepalived:                                       [  OK  ]

访问10.0.0.3/10.0.0.4如下:

最后修改于 2020-01-06 17:13:41
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇