本文共 1484 字,大约阅读时间需要 4 分钟。
一:实验环境
主nginx负载均衡器:192.168.10.63 (通过keepalived配置了VIP:192.168.10.188供外使用)
副nginx负载均衡器:192.168.10.200(通过keepalived配置了VIP:192.168.10.188供外使用)拓扑图:二:安装nginx和keepalived(用yum安装,在此处不编译安装了,用阿里云的yum仓库)yum install nginx -yyum install keepalived -y 三:配置nginx服务器:master:192.168.10.63 cd /usr/share/nginx/html/vi index.html如图:slave:192.168.10.200cd /usr/share/nginx/html/vi index.html如图:在浏览器里访问master和slave,检验配置是否正确:四:配置keepalived服务器:master的配置cd /etc/keepalived/cp keepalived.conf{,.bak} #备份配置文件,养成良好习惯,修改配置文件前一定要备份。slave的配置:不多说,直接上图:重启master,slave的keepalived,nginx。master的vip 如图:关闭master的keepalivd,vip会漂移到slave上去,master上的截图:查看slave,次时vip已经漂移到salve上去了,salve上的截图:说明keepalived的配置没有问题。五:检验keepalived和nginx的高可用:关闭master的nginx,自动切换到slave的nginx,如图:master关闭nginx:再次刷新网页,跳转到了slave的界面:次时master的vip票已到slave上去了。master截图:salve的截图:vip为什么会漂移:是因为调用了/carl/data/program/nginx/sbin/check_nginx_alive.sh,这个脚本判断nginx挂掉后(关闭),就killall keepalived,master上的keepalived就停止了,而keepalived上的是正常状态,所以vip就漂移到了slave。这个脚本内容如下:#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
A=ps -C nginx --no-header |wc -l
if [ $A -eq 0 ]thenecho 'nginx server is died'killall keepalivedfi截图如下: 总结:此实验室mater-slave实验,有nginx心跳脚本,只要nginx停止,该服务器上的keepalived就会killall keepalived 。master上的nginx停止后,master上的keepalived也会停止,vip漂移到slave上,vip对外的服务正常访问。但是:slave上的nginx停止后,是不会从salve上漂移到master上的。互为主从模式下,就要2个vip,次时DNS可以有2条A记录指向这2个VIP,又可以实现高可以,无论是挂哪个机器,都可以对外提供服务。
此次试验借鉴了其他博客的脚本,非常感谢他们!!转载于:https://blog.51cto.com/10044854/2126575