企业Nginx+Keepalived双主架构案例实战

时间:2023-03-09 03:44:51
企业Nginx+Keepalived双主架构案例实战

通过上一次课程的学习,我们知道Nginx+keepalived主从配置,始终有一台服务器处于空余状态,那如何更好的利用起来呢,我们需要借助Nginx+keepalived双主架构来实现,如下图通过改装后的网络架构图;

企业Nginx+Keepalived双主架构案例实战

直接master1上keepalived.conf配置文件内容:

! Configuration File for keepalived

global_defs {

notification_email {

wgkgood@163.com

}

notification_email_from wgkgood@163.com

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_script chk_nginx {

script "/data/sh/check_nginx.sh"

interval 2

weight 2

}

# VIP1

vrrp_instance VI_1 {

state MASTER

interface eth0

lvs_sync_daemon_inteface eth0

virtual_router_id 151

priority 100

advert_int 5

nopreempt

authentication {

auth_typePASS

auth_pass  1111

}

virtual_ipaddress {

192.168.33.188

}

track_script {

chk_nginx

}

}

# VIP2

vrrp_instance VI_2 {

state BACKUP

interface eth0

lvs_sync_daemon_inteface eth0

virtual_router_id 152

priority  90

advert_int 5

nopreempt

authentication {

auth_typePASS

auth_pass  2222

}

virtual_ipaddress {

192.168.33.199

}

track_script {

chk_nginx

}

}

在另外一台服务器33.10上同样配置,只需要把相应的state对改就OK,把原先的master改成backup,把backup改成master即可,然后在两台服务器分别启动keepalived服务即可,然后访问两个VIP即可。如下粘贴一下master2配置文件内容:

! Configuration File for keepalived

global_defs {

notification_email {

wgkgood@163.com

}

notification_email_from wgkgood@163.com

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_script chk_nginx {

script "/data/sh/check_nginx.sh"

interval 2

weight 2

}

# VIP1

vrrp_instance VI_1 {

state BACKUP

interface eth0

lvs_sync_daemon_inteface eth0

virtual_router_id 151

priority 90

advert_int 5

nopreempt

authentication {

auth_typePASS

auth_pass  1111

}

virtual_ipaddress {

192.168.33.188

}

track_script {

chk_nginx

}

}

# VIP2

vrrp_instance VI_2 {

state MASTER

interface eth0

lvs_sync_daemon_inteface eth0

virtual_router_id 152

priority  100

advert_int 5

nopreempt

authentication {

auth_typePASS

auth_pass  2222

}

virtual_ipaddress {

192.168.33.199

}

track_script {

chk_nginx

}

}

最后需要在两台Nginx主服务器上配置/data/sh/check_nginx.sh脚本,内容如下:

#!/bin/bash

#auto check nginx  process

killall  -0   nginx

if

[[ $? -ne 0 ]];then

/etc/init.d/keepalived stop

fi

如下图情况,两个VIP在一台服务器,是由于另外一台服务器down机,VIP都漂移到本机网卡下。

企业Nginx+Keepalived双主架构案例实战

双主在企业实施中需要注意的地方:

1、配置文件必须设置不同的VRRP名称,同时优先级和VIP设置也同样需要注意。

2、网站总访问量为两台Nginx之和,可以写脚本实现。

3、两个VIP存在后,外网如果需要访问,需要做域名映射到两个VIP上即可。

4、这样就是基于DNS负载均衡模式。

5、需要配置监控实时监控VIP访问状态是否正常。