当前位置: 首页 > wzjs >正文

网站建设 公司排名保定网站报价

网站建设 公司排名,保定网站报价,国外设计学院网站,共享网站哪里建版本日期修订人描述V1.02025/2/23nick huang创建文档 背景 最近,预研给现有的Nginx单点实例添加故障转移的功能,以备单实例故障时无法快速恢复。 本文记录Keepalived的学习笔记,供自己或同学日后参考。 Keepalived Keepalived是一个开源的…
版本日期修订人描述
V1.02025/2/23nick huang创建文档

背景

最近,预研给现有的Nginx单点实例添加故障转移的功能,以备单实例故障时无法快速恢复。
本文记录Keepalived的学习笔记,供自己或同学日后参考。

Keepalived

Keepalived是一个开源的高可用性解决方法,主要用于在Linux中实现服务的故障检测、自动故障转移和负载均衡。

Tips
从他的名称就能了解他的作用:keep alived —— 保持活跃

Tips
高可用(High Availability,HA),是指通过设计和技术手段,使系统或服务在面对硬件故障、网络故障、软件故障等潜在风险时,仍能持续稳定地提供服务的能力。
高可用不是单一的技术,而是架构设计、工程实现等的综合实现。
Keepalived是构建高可用集群的工具之一,通过VRRP协议和健康检查机制,简化服务冗余的实现。

VRRP协议(虚拟路由冗余协议)

Keepalived是基于VRRP协议的实现工具。VRRP协议定义了主备节点和故障切换的标准流程。

VRRP的背景:
在VRRP出现之前,局域网依赖单一物理设备作为默认网关,这种设计存在单点故障风险。
在90年代,IETF开始制定统一的网关冗余标准,通过VRRP解决上述问题。
VRRP作用:允许多台网关冗余协同工作,通过故障检测和切换手段在秒级通过虚拟IP完成切换,主机难以感知到网关变化。

安装

笔者使用的时CentOS,方便起见,用的是yum安装。

## yum命令
yum -y install keepalived## 查看安装后的路径和文件
# rpm -ql keepalived

简单的HelloWorld场景运行一下

1、我们先搭建好Nginx,Nginx的过程省略。
现在以下地址,应该能访问Nginx的默认静态资源:%nginx_hone%/html/index.html

http://服务器1的IP

2、备份好主可配置文件
Keepalived的主配置文件为:/etc/keepalived/keepalived.conf
我们后面需要修改此文件,修改前备份一下呗:

cp /etc/keepalived/keepalived.conf  /etc/keepalived/keepalived.conf.bak.origin

3、编辑主配置文件

vi /etc/keepalived/keepalived.conf

配置文件内容,实际可以了解各配置的作用并做调整或增删:

! Configuration File for keepalivedglobal_defs {router_id NGINX_HAvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state MASTERinterface enp0s3virtual_router_id 66priority 100advert_int 1authentication {auth_type PASSauth_pass 你的密码}virtual_ipaddress {你的虚拟IP}
}

对于上述的配置的作用,做了一些简单地整理:

global_defs { # 全局定义notification_email { # 收到通知邮件xxxxxx@xxxxxx.xxx}notification_email_from xxxxxx@xxxxxx.xxx # 发件人smtp_server xxx.xxx.xxx.xxx # 发送邮件所使用的SMTP服务器地址smtp_connect_timeout 30 # 发送邮件连接超时时间router_id LVS_DEVEL # Keepalived的路由ID,在VRRP通信中用于标识不同的Keepalived实例vrrp_skip_check_adv_addr # 是否跳过VRRP广告报文中的源地址是否与上一个报文相同,启用则写入此配置项,无需赋值vrrp_strict # 是否严格遵守VRRP协议的规定vrrp_garp_interval 0 # 在VRRP环境中,当Master设备出现故障并切换到Backup时,Backup设备会发送Gratuitous ARP消息,以通知网络中的其他设备更新其ARP缓存,确保数据包能够正确地发送到新的Master设备。vrrp_garp_interval用于控制Gratuitous ARP消息的发送频率(实际上是发送延迟,延迟越短,频率越高)vrrp_gna_interval 0 # 在VRRP环境中,邻居通告消息用于在VRRP路由器之间传递状态信息,以确保它们之间的同步和协调,这些消息包括路由器的优先级、虚拟IP地址等信息,对于VRRP协议的正常运作至关重要,此配置用于配置此消息的发送延迟时间
}# 虚拟路由器实例配置
vrrp_instance VI_1 {state MASTER # 虚拟路由器实例的状态:MASTER为主路由器,BACKUP为备份路由器interface eth0 # 实例要绑定的物理接口(通常是一个真实网络接口)virtual_router_id 51 # 虚拟路由器标识符,用于唯一标识一个VRRP备份组,确保同一个局域网内,不同的VRRP备份组之间不会互相干扰priority 100 # 优先级,用于决定哪个路由器实例将成为VRRP备份组中的主路由器advert_int 1 # 通告间隔,用于指定VRRP路由器实例发送VRRP通告报文的时间间隔,这个参数对VRRP备份组的稳定性和故障转移速度有重要影响,默认1秒authentication { # 认证,用于确保VRRP备份组内的路由器实例之间的通信安全。通过配置认证,可以防止未经授权的路由器实例加入VRRP备份组,从而保护网络的稳定性和安全性auth_type PASS # 认证类型auth_pass xxxxxx # 认证密码}virtual_ipaddress { # 用于指定一个或多个虚拟IP地址,这些虚拟IP地址不属于任何物理接口,而是被分配给VRRP虚拟路由实例。当VRRP组的主路由器选举完成后,主路由器将接管这些虚拟IP地址,并对外提供服务。你的VIP IP 1你的VIP IP 2你的VIP IP 3}track_script { # 用于关联之前定义的vrrp_script监控脚本}
}

4、启动
在启动前,你可以使用ip a查询并记录一下网络信息。
启动后因为加入虚拟IP的特性,网络信息会加入虚拟IP的变化。

启动命令:

systemctl start keepalived.service

5、验证结果
你可以从这几个角度检查下是否启动:

1)查看进程
ps -ef | grep keep2)查看系统日志的Keepalived相关日志
less /var/log/messages3)查看网络信息中是否存在配置的虚拟IP
ip a

如果顺利,你应该可以通过虚拟IP访问Nginx的资源:

http://虚拟IP/

两个Nginx副本,Keepalived做故障转移

1、在另一台服务器再搭建一个Nginx实例,搭建过程省略。

2、添加检测Nginx进程是否存活的脚本,并添加执行权限

vi /opt/keepalived/shell/monitor_nginx.sh

脚本内容:

Tips
本脚本仅做本次测试使用,实际使用可以写得更严谨、健壮些。

后话:经过简单地压测,此脚本在主服务器的Nginx宕机后,二次启动时,会有几秒的中断。
因为此脚本的判断点是“是否有Nginx的进程”,而Nginx在“启动进程”到“真正能接受请求”,可能还是有时间差的,这不够严谨,所以造成几秒的中断。

#!/bin/bashnginx_ps_num=`ps -C nginx --no-header | wc -l`if [ $nginx_ps_num == 0 ]; thenexit 1
fiexit 0

可以看到上述脚本有两种返回:
1)返回0,表示监控的服务正常运行,不会触发故障转移
2)返回1,表示监控的服务异常,可能触发故障转移(取决于失败次数和其他配置)

3、在服务器1配置主配置文件

vi /etc/keepalived/keepalived.conf

配置内容参考,实际可以了解各配置的作用并做调整或增删:

! Configuration File for keepalivedglobal_defs {router_id NGINX_HAvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_script monitor_nginx_script {script "/opt/keepalived/shell/monitor_nginx.sh"interval 1weight 10fall 1rise 3
}vrrp_instance VI_21 {state MASTERinterface enp0s3virtual_router_id 66priority 55advert_int 1authentication {auth_type PASSauth_pass 你的密码}virtual_ipaddress {你的虚拟IP}track_script {monitor_nginx_script}
}

对于上述的新增配置的作用,做了一些简单地整理:

vrrp_script monitor_xxxxx_script { # 定义脚本来监控某些条件或服务的状态,这些脚本通常用于检测后端服务的健康状态script "/opt/keepalived/shell/monitor_xxxxx.sh" # 具体要执行的脚本的路径或内容,这个脚本是一个shell命令或可执行程序,它会被Keepalived定期调用以检查某个条件或服务的状态interval 1 # 定期执行监控脚本的时间间隔,单位为秒weight -20 # 当执行脚本的执行结果触发状态变化时,应该增加或减少VRRP实例的优先级的量值。正数权重,当脚本执行成功时,VRRP实例的优先级会增加相应权重值;负数权重,当脚本执行失败时,VRRP实例的优先级会减少相应的权重值。timeout 3 # 脚本超时时间,单位为秒(可选配置)fall 2 # 失败次数达到此值时触发状态切换(可选配置)rise 2 # 成功次数达到此值时恢复状态(可选配置)
}

4、在服务器1配置主配置文件

vi /etc/keepalived/keepalived.conf

配置内容参考,实际可以了解各配置的作用并做调整或增删:

! Configuration File for keepalivedglobal_defs {router_id NGINX_HAvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_script monitor_nginx_script {script "/opt/keepalived/shell/monitor_nginx.sh"interval 1weight 10fall 1rise 3
}vrrp_instance VI_22 {state BACKUPinterface enp0s3virtual_router_id 66priority 50advert_int 1authentication {auth_type PASSauth_pass 你的密码}virtual_ipaddress {你的虚拟IP}track_script {monitor_nginx_script}
}

5、启动及验证
在启动前,你可以使用ip a查询并记录一下网络信息。
启动后因为加入虚拟IP的特性,网络信息会加入虚拟IP的变化。

启动命令:

systemctl start keepalived.service

两台服务器均启动成功后,你可以发现其中一台服务器的网络信息上有虚拟IP的信息,那台就是主服务器。

你访问以下地址,实际访问的是主服务器的资源。
http://虚拟IP/

Tips
因为使用Nginx的默认静态资源作访问测试。
可以将两台Nginx服务器的默认静态资源稍作修改(添加标识),使得我们用浏览器访问时能够识别当时访问的是哪台机器。
具体如何修改呢?
编辑此文件:%nginx_hone%/html/index.html,在内容中添加你可辨别的表示即可。

此时,我们可以测试故障转移的场景:
关闭主服务器的Nginx进程,再访问以下地址。如果顺利的话,你应该可以访问成功,此时实际访问的是另一台服务器的资源了:
http://虚拟IP/

Tips
如果发现故障转移不成功,或发现两台服务器的网络信息中均包含虚拟IP信息。
可以检查下服务器的防火墙是否禁止了相关的网络行为。

最后

小弟不才,学识有限,如有错漏,欢迎指正哈。
如果本文对你有帮助,记得“一键三连”(“点赞”、“评论”、“收藏”)哦!


文章转载自:

http://V5ops1k3.qmnhw.cn
http://0ZdswbMO.qmnhw.cn
http://BgZVaXqb.qmnhw.cn
http://TSgluZm3.qmnhw.cn
http://phi8bDDc.qmnhw.cn
http://sWAcPM5l.qmnhw.cn
http://K813JVkQ.qmnhw.cn
http://mA7FPr4d.qmnhw.cn
http://BLSWy4TW.qmnhw.cn
http://5kW2C43d.qmnhw.cn
http://dLq31NNs.qmnhw.cn
http://aSAzrroH.qmnhw.cn
http://4CsIfm3s.qmnhw.cn
http://O3x9nAdv.qmnhw.cn
http://hKkb9B2x.qmnhw.cn
http://06MtTEf3.qmnhw.cn
http://jk3byhWM.qmnhw.cn
http://CrL9jVQc.qmnhw.cn
http://f3c5UFFS.qmnhw.cn
http://rS4Sqx9N.qmnhw.cn
http://MDzo8T87.qmnhw.cn
http://UwVIBd0s.qmnhw.cn
http://PoHaUsIY.qmnhw.cn
http://cRw28nCs.qmnhw.cn
http://OJT8zhLm.qmnhw.cn
http://oObBMwRl.qmnhw.cn
http://SCkNGmh4.qmnhw.cn
http://wREcombc.qmnhw.cn
http://PkwubHWB.qmnhw.cn
http://dBaqTOkp.qmnhw.cn
http://www.dtcms.com/wzjs/775520.html

相关文章:

  • 做网站平台多少钱Wordpress做物联网
  • 轻媒做的网站谷歌推广和seo
  • 网站建设必须配置网站设计与开发技术教程
  • 如何新建网站dw绍兴酒店网站建设
  • 开远市新农村数字建设网站google广告投放
  • 有哪几个平台做网站建设项目环保验收平台网站
  • 网站跳出率因素汉中市网站建设公司
  • 为什么要网站备案淘宝网站建设手机版
  • 做游戏 做网站网站设计建设公司服务商
  • 房山手机网站建设深圳网络推广代运营
  • 南京网站建设的公司强大的wordpress瀑布流主题
  • 网站设计需求分析报告网站后台发布文章
  • 有没有做ppt很厉害的网站wordpress页面404
  • 行远金华网站建设公司eclipse做的网站
  • 大连网站建设流程图百度收录批量提交入口
  • 网站说建设中网络游戏企业不得向提供游戏服务
  • 网站建设员好吗做网站合同
  • 现在做什么网站好北京京西建设集团网站
  • 网站建设应注重实用性网站空间服务站电话
  • yu网站建设四川网站建设方案
  • wordpress网站可以显示中文和英文分析网站推广和优化的原因
  • 社交网站推广怎么做婚纱摄影网站定制
  • 长沙专业的建站按效果付费王展简历
  • 龙岩做网站公司在哪里如何判断网站是用什么程序做的
  • 外贸模板网站wordpress站做app
  • 老专家个人网站网站数据库空间大小
  • 做海外房产最好的网站网站导航菜单代码
  • 网页制作与网站建设试卷及答案动画制作专业培训
  • 云阿里云做网站网站改版的seo注意事项
  • 网站加载速度影响因素微信公众号服务平台电话