博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx+keepalive实现高可用负载均衡
阅读量:6757 次
发布时间:2019-06-26

本文共 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+keepalive实现高可用负载均衡
二:安装nginx和keepalived(用yum安装,在此处不编译安装了,用阿里云的yum仓库)
yum install nginx -y
yum install keepalived -y
三:配置nginx服务器:
master:192.168.10.63
cd /usr/share/nginx/html/
vi index.html
如图:
nginx+keepalive实现高可用负载均衡
nginx+keepalive实现高可用负载均衡
slave:192.168.10.200
cd /usr/share/nginx/html/
vi index.html
如图:
nginx+keepalive实现高可用负载均衡
nginx+keepalive实现高可用负载均衡
在浏览器里访问master和slave,检验配置是否正确:
nginx+keepalive实现高可用负载均衡
nginx+keepalive实现高可用负载均衡
四:配置keepalived服务器:
master的配置
cd /etc/keepalived/
cp keepalived.conf{,.bak} #备份配置文件,养成良好习惯,修改配置文件前一定要备份。
nginx+keepalive实现高可用负载均衡
nginx+keepalive实现高可用负载均衡
slave的配置:不多说,直接上图:
nginx+keepalive实现高可用负载均衡
nginx+keepalive实现高可用负载均衡
重启master,slave的keepalived,nginx。
master的vip 如图:
nginx+keepalive实现高可用负载均衡
关闭master的keepalivd,vip会漂移到slave上去,master上的截图:
nginx+keepalive实现高可用负载均衡
查看slave,次时vip已经漂移到salve上去了,salve上的截图:
nginx+keepalive实现高可用负载均衡
说明keepalived的配置没有问题。
五:检验keepalived和nginx的高可用:
nginx+keepalive实现高可用负载均衡
关闭master的nginx,自动切换到slave的nginx,如图:
master关闭nginx:
nginx+keepalive实现高可用负载均衡
再次刷新网页,跳转到了slave的界面:
nginx+keepalive实现高可用负载均衡
次时master的vip票已到slave上去了。master截图:
nginx+keepalive实现高可用负载均衡
salve的截图:
nginx+keepalive实现高可用负载均衡
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 ]
then
echo 'nginx server is died'
killall keepalived
fi
截图如下:
nginx+keepalive实现高可用负载均衡

总结:此实验室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

你可能感兴趣的文章
iOS开发 iOS10推送必看
查看>>
C#设计模式——抽象工厂模式(Abstract Factory Pattern)
查看>>
软件测试--关键字
查看>>
nginx知识点
查看>>
字符串操作(字符数统计及字符串反转)
查看>>
递归写法参考
查看>>
【Python】学习笔记八:面向对象
查看>>
单片机中PWM的原理与控制程序
查看>>
RStudio中,出现中文乱码问题的解决方案
查看>>
【SQL 触发器】
查看>>
Kafka server部署配置优化
查看>>
(转) Artificial intelligence, revealed
查看>>
【转】VS项目属性的一些配置项的总结
查看>>
Project、Target、Workspace and Scheme
查看>>
topas top vmstat
查看>>
Linux基本权限学习
查看>>
掌握jQuery插件开发
查看>>
git基本用法
查看>>
Spring Session - 使用Redis存储HttpSession例子
查看>>
如何利用框选工具获取多边形范围?
查看>>