keepalived+nginx单主和双主架构配置

单主架构

A主机--主(192.168.1.252)+nginx
B主机--备(192.168.1.250)+nginx

安装keepalived

yum install keepalived* -y

配置文件内容:(/etc/keepalived.conf)-----主(192.168.1.252)

! Configuration File for keepalived 
global_defs { 
  notification_email { 
     tianye@lzad.cc
 } 
    notification_email_from tianye@lzad.cc
    smtp_server 127.0.0.1 
    smtp_connect_timeout 30 
    router_id LVS_DEVEL 
 } 
#这部分为检测nginx脚本,暂时不用
#vrrp_script chk_nginx { 
#    script  "/data/sh/check_nginx.sh" 
#    interval 2 
#    weight 2 
#} 

#VIP1 192.168.1.188
vrrp_instance VI_1 { 
     state MASTER    #状态设置为主
     interface ens33   #监听的网卡,这个要看自己的网卡名
     virtual_router_id 151  #虚拟路由组的id(主从两边要一致,表示在同一个组内)
     priority 100          #优先级为100
     advert_int 5 
     #nopreempt 
     authentication { 
         auth_type  PASS 
         auth_pass  1111 
     } 
     virtual_ipaddress { 
         192.168.1.188      #设置虚拟IP(VIP)
     } 
 #    track_script { 
 #    chk_nginx 
 #   } 
}

配置完 ,通过scp把该文件发送到 备用机(192.168.1.102)/etc/keepalived,并重启keepalived服务

systemctl    restart  keepalived

备用机只修改两处

state BACKUP
priority 80 #优先级比主的小就行
网卡名字如果不一样也要修改一下

保存退出,重启keepalived服务
先看下主的nginx---192.168.1.252


image.png

备的nginx---192.168.1.102


image.png

VIP---192.168.1.188(此时页面显示的是优先级高的master)


image.png

我们现在断开master的keepalived服务或者网卡服务,模拟宕机
(使整个虚拟广播组里收不到master发的包了,这时多个backup之间会重新竞选,优先级高的会成为新的master ,这里咱们只有一个backup,所以直接取代了master),看下结果吧:
systemctl stop keepalived


image.png

观察下102上的日志(keepalived默认日志在/var/log/messages,后期可以自己定义分离出来)


image.png

ip add也可以看到VIP漂移过来了


image.png

双主架构

双主架构就是有两个VIP,互相为主备关系
VIP1: 192.168.1.188
VIP2: 192.168.1.199

web1--192.168.1.252(1.188的主机 , 1.199的备用机)
web2--192.168.1.102(1.199的主机,1.188的备用机)

有了两个VIP,那么我们的配置文件就要发生变化了,在增加一段新的VRRP段
下面为1.252刚才的配置上在添加一段

#VIP2 192.168.1.199
vrrp_instance VI_2 { 
     state BACKUP        #状态设为BACKUP
     interface ens33 
     virtual_router_id 152  #换一个新的虚拟组ID
     priority 80                   #优先级
     advert_int 5 
     nopreempt 
     authentication { 
         auth_type  PASS 
         auth_pass  1111 
     } 
     virtual_ipaddress { 
         192.168.1.199      #虚拟IP
     } 
}

下面为1.102在刚才的配置上添加

#VIP2 192.168.1.199
vrrp_instance VI_2 { 
     state MASTER   #状态为主
     interface ens33 
     lvs_sync_daemon_inteface ens33 
     virtual_router_id 152    #ID
     priority 100              #优先级改为最高
     advert_int 5 
     #nopreempt 
     authentication { 
         auth_type  PASS 
         auth_pass  1111 
     } 
     virtual_ipaddress { 
         192.168.1.199    #VIP
     } 
}

重启两边的keepalived的,效果为(1.188显示它的主,1.99显示它的主)


image.png

image.png

测试:此时 web1(1.252)宕机,停掉web1的keepalived。
结果那么1.188就切成备了


image.png
image.png

切回来,恢复web1,开启keepalived服务
结果那么1.188又恢复成自己的主了。


image.png

image.png

测试一下web2(1.102)(1.199的主,188的备),模拟它宕机了会怎么样


image.png
image.png

再恢复:


image.png
image.png

总结:

双主架构的整体思路为,两个机器互为对方的主备,有两个VIP。当一方宕机,另一方作为宕机机器的备用机会顶上去充当MASTER,属于自己主机的VIP不受影响,因为自己还是正常运行的。理解起来就是 哪方宕机了,哪个备用就上,如果主机恢复了就会自动再重新工作恢复MASTER的身份,一直遵循着 MASTER>BACKUP. 优先级高>优先级低 来保证系统的持续正常运转。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。