Nginx实战部署常用功能演示(超详细版),绝对给力~~~ (6)

对于上面的主备模式,只有主节点提供服务,如果主节点不发生故障,备节点服务器就有点资源浪费啦,这个时候多主多备不仅能合理利用资源,还得提供备用服务(根据实际需要配置),形成真正集群提供服务。

这里就演示一下双主双备的配置,思路就是在keepalived增加多个vrrp实例,105机器在vrrp实例VI_1中作为主节点,106机器作为备节点,在vrrp实例VI_2中,105机器作为备节点,106机器作为主节点,这样就形成了互为主备的模式,资源就能很好的利用啦;其他逻辑不变,只是分别在105、106机器上加上的keepalived.conf中加上VI_2实例即可,如下:

105机器上keepalived.conf内容如下:

global_defs { router_id 31 } #检测nginx服务是否在运行 vrrp_script chk_nginx { #使用脚本检测 script "/usr/local/src/chk_nginx.sh" #脚本执行间隔,每2s检测一次 interval 2 #脚本结果导致的优先级变更,检测失败(脚本返回非0)则优先级 -5 weight -5 #连续2次检测失败才确定是真失败 fall 2 #检测到1次成功就算成功 rise 1 } vrrp_instance VI_1 { state MASTER interface enp0s8 virtual_router_id 3 priority 200 advert_int 1 authentication { auth_type PASS auth_pass 123456 } track_script { chk_nginx } virtual_ipaddress { 192.168.30.108 } } vrrp_instance VI_2 { # VI_1是MASTER,这里就是备节点 state BACKUP interface enp0s8 # 修改路由编号 virtual_router_id 5 # 备节点优先级稍低 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 123456 } track_script { chk_nginx } virtual_ipaddress { # 虚拟IP 192.168.30.109 } }

106机器上keepalived.conf内容如下:

global_defs { router_id 32 } #检测nginx服务是否在运行 vrrp_script chk_nginx { #使用脚本检测 script "/usr/local/src/chk_nginx.sh" #脚本执行间隔,每2s检测一次 interval 2 #脚本结果导致的优先级变更,检测失败(脚本返回非0)则优先级 -5 weight -5 #连续2次检测失败才确定是真失败 fall 2 #检测到1次成功就算成功 rise 1 } vrrp_instance VI_1 { state BACKUP interface enp0s8 virtual_router_id 3 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 123456 } track_script { chk_nginx } virtual_ipaddress { 192.168.30.108 } } vrrp_instance VI_2 { # 这里是主节点 state MASTER interface enp0s8 # 这里和105机器上的VI_2中id一致 virtual_router_id 5 priority 200 advert_int 1 authentication { auth_type PASS auth_pass 123456 } track_script { chk_nginx } virtual_ipaddress { # 虚拟IP 192.168.30.109 } }

分别重启两台机器上的keepalived,执行命令如下:

Nginx实战部署常用功能演示(超详细版),绝对给力~~~

然后分别访问虚拟ip 192.168.30.108 和192.168.30.109,都能提供对应的服务啦,这里不截图了。

总结

开发和生产环境比较常用的功能大概就这么多,后续如果用得多的功能会及时和小伙伴分享哦。

这次主要遇见一些问题,小伙伴可以作为参考,汇总如下:

VMware虚拟机网络问题,主机ping不通虚拟机、虚拟机ping不通主机、上不了外网

这个问题折腾了两个晚上,原因是之前的网络配置有一些问题,然后重新装了虚拟机,但是用单网卡的方式依然没有同时解决上面的问题,最后使用两个网卡的方式解决了; 一个网卡使用动态分配,另外一个使用静态IP,信息如下:

Nginx实战部署常用功能演示(超详细版),绝对给力~~~

keepalived启动不起来

使用yum直接安装的方式,可能会遇到启动不起来的情况,排查了服务里面配置路径,目录都对,依赖包也装了还不行;最后使用源码方式安装没问题。

keepalived的虚拟ip主机ping不通

这也是个棘手的问题,虚拟ip能在主、备机器之间正常漂移,就是主机ping不同虚拟IP,当前解决的措施主要步骤,如下:

首先注释掉keepalived.conf 中vrrp_strict ,然后重启keepalived;

如果还不行,就排查防火墙;

再不行,就清arp缓存

Nginx实战部署常用功能演示(超详细版),绝对给力~~~

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyjzyg.html