本文主要介绍Keepalived实现Nginx负载均衡的高可用性的示例代码。本文介绍的示例代码非常详细,对于大家的学习或者工作都有一定的参考价值。有需要的朋友就跟着下面的边肖学习吧。
第1章:keepalived简介
VRRP协议
的目的是解决静态路由单点故障的问题。
第二章:keepalived的工作原理
2.1高可用性功能(故障切换)作为系统网络服务
实现keepalived高可用功能的基本原理如下:
两台主机同时安装keepalived软件并启动服务。当它们开始正常工作时,
具有主用角色的主机获取所有资源,为用户提供服务
具有备份角色的主机作为主用主机的热备;
当具有主控角色的主机出现故障或失效
时,具有备份角色的主机将自动接管主控主机的所有工作,包括接管VIP资源和相应的资源服务。
当具有主机角色的主机被修复时,它将自动接管其原始工作。
具有备份角色的主机也将在主服务器出现故障时释放其接管的工作。
此时,两台主机将恢复到启动时的原始角色和工作状态
2.2什么是VRRP
VRRP,全称是虚拟路由器冗余协议,中文名是虚拟路由冗余协议
VRRP出现解决静态路由单点故障问题
。
VRRP通过选举机制实现虚拟路由器的功能。所有协议消息都以IP多播数据包的形式发送(默认多播地址224.0.0.18)。
虚拟路由器由VRID(范围0-255)和一组IP地址组成,对外表现为众所周知的MAC地址。:00-00-5e-00-01-{vrid}。
所以,在一个虚拟路由器中,不管谁是主,外部的MAC和IP都是一样的(称为VIP)。
客户端主机不需要因为主的变化而修改自身。
在一组虚拟路由器中,只有作为主路由器的VRRP路由器会一直发送VRRP广播包,然后备份不会抢占主路由器
。当主服务器不可用时,备份服务器不会从主服务器接收广播数据包。此时,多个备份中优先级最高的路由器将优先成为主路由器。
这种抢占速度非常快(可能只有1秒或更短),保证了服务的连续性。出于安全原因,VRRP数据包通过加密协议进行加密。
2.3面试怎么说
回答:
keepalived高可用性对通过VRRP相互通信,所以我从VRRP告诉你。
1中文名称是虚拟路由器冗余协议。VRRP的出现解决了静态路由的单点故障。
2)VRRP通过战役协议将路由任务交给VRRP路由器。
3)VRRP使用IP多播。(默认组播地址(224.0.0.18))实现高可用性对之间的通信。
4)工作时,主节点发出数据包,备用节点接收数据包。当备用节点不能接收到主节点发送的数据包时,它启动接管程序接管主节点的资源。可以有一个以上的备用节点,可以按优先级竞争。但是一般来说,keepalived系统的 *** 作和维护是成对的。
5)VRRP使用加密协议对数据进行加密,但keepalived官方目前仍建议明文配置认证类型和密码。
介绍完VRRP,接下来介绍keepalived服务的工作原理;
保持活动的高可用性对通过VRRP相互通信。VRRP通过选举机制确定主备,主备的优先级高于备。所以工作时会先获得所有资源,备用节点处于等待状态。当主节点挂断时,备用节点将接管主节点的资源。然后替换主节点提供外部服务。
在保持活动的服务对之间,只有作为主服务器的服务器将始终发送VRRP广播数据包,告诉备用服务器他仍然活动。这个时候备用不会抢占主。当主用不可用时,即备用无法监听到主用发送的广播包时,会启动相关服务接管资源,保证业务连续性。最快的接管速度可能不到一秒钟[/br]
第三章:VRRP协议
VRRP通过选举机制实现虚拟路由器的功能
所有协议消息都是通过IP组播包发送的
。默认多播地址是20。
VIP先决条件:
1。虚拟公网IP必须真正可用
2。虚拟公共网络IP不能重复
3。多播地址必须是可通信的。
第4章:保持有效的安装配置
1.安装keepalived
2.个人资料说明
3.lb01配置
4.lb02配置
5.开始
6.测试
关掉任何一个观察VIP会不会漂移
还原主观察备份的VIP会不会消失。
第五章:精神分裂症
1.安装集袋器
2.lb02检查包装
3.lb02打开一个新的终端,然后打开防火墙
4.lb02观察抢包现象
看两边是否有VIP。
5.添加发布规则
6.lb02观察抢包现象
,看两边是否有VIP。
第六章:keepalived双主实验
1.lb01配置文件
2.lb02配置文件
3.重新启动keepalived并观察现象
第七章:keepalived结合nginx反向代理负载均衡
Nginx配置LB服务器:
注意!两台lb服务器的Nginx配置是相同的。
1.备份原始配置
2.编写Nginx配置文件
3.测试并重启nginx
保持LB服务器的有效配置:
1.保持1.lb01的有效配置
2.保持2.lb02的有效配置
web服务器配置:
立正!两台web服务器的配置完全相同。
1.nginx配置
2.编写测试文件
第八章:防破解脑脚本
1。问题现象:
1.nginx死了,keep却还活着
2.两边都有贵宾。
2。思路:
解决nginx挂机问题:
1。写个剧本。
2.keepalived定期调用这个脚本。
3。实现:
1.如何执行命令?
systemctlstartnginx2.检查nginx流程
[root@lb01~]#ps-ef|grepnginx|grep-v"grep" root12101011:21?00:00:00nginx:masterprocess/usr/sbin/nginx-c/etc/nginx/nginx.conf nginx12111210011:21?00:00:00nginx:workerprocess [root@lb01~]#ps-ef|grepnginx|grep-v"grep"|wc-l 2 [root@lb01~]#ps-ef|grepnginx|grep-v"grep"|wc-l 0脚本内容:
[root@lb01~]#catcheck_web.sh !/bin/bash nginx_status=$(ps-Cnginx--no-header|wc-l) if[[${nginx_status}==0]] then systemctlstartnginx&>/dev/null sleep1 nginx_status=$(ps-Cnginx--no-header|wc-l) if[[${nginx_status}==0]] then systemctlstopkeepalived fi fi保持激活的呼叫脚本:
[root@lb01~]#cat/etc/keepalived/keepalived.conf global_defs{ router_idlb01 } vrrp_scriptcheck_web{ script"/server/scripts/check_web.sh" interval5 weight50 } vrrp_instanceVI_1{ stateMASTER interfaceeth0 virtual_router_id50 priority150 advert_int1 authentication{ auth_typePASS auth_pass1111 } virtual_ipaddress{ 10.0.0.3 } track_script{ check_web } }4。第二个问题:裂脑问题
两边都有VIP。
现象:
两边VIP
两边Nginx是活的。
对面高手的Nginx还活着。
curl-I-s-w"%{http_code}\n"-o/dev/null10.0.0.5但是我又有一个贵宾了
ipa|grep"10.0.0.3"|wc-l我会自杀。
systemctlstopnginx systemctlstopkeepalived脚本内容:
[root@lb02/server/scripts]#catcheck_vip.sh #!/bin/bash master_status=$(curl-I-s-w"%{http_code}\n"-o/dev/null10.0.0.5) my_vip=$(ipa|grep"10.0.0.3"|wc-l) if[${master_status}==200-a${my_vip}==1] then systemctlstopnginx systemctlstopkeepalived fi保持有效配置:
[root@lb02~]#cat/etc/keepalived/keepalived.conf global_defs{ router_idlb02 } vrrp_scriptcheck_web{ script"/server/scripts/check_web.sh" interval5 weight50 } vrrp_scriptcheck_vip{ script"/server/scripts/check_vip.sh" interval5 weight50 } vrrp_instanceVI_1{ stateBACKUP interfaceeth0 virtual_router_id50 priority100 advert_int1 authentication{ auth_typePASS auth_pass1111 } virtual_ipaddress{ 10.0.0.3 } track_script{ check_web check_vip } }就是这样。本文介绍了保持Nginx负载均衡和高可用性的示例代码。有关保持Nginx负载平衡和高可用性的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)