旅行社网站建设规划书论文做h5页面的网站

news/2025/9/23 13:52:07/文章来源:
旅行社网站建设规划书论文,做h5页面的网站,嘉兴网站建设技术托管,wordpress数据库设计优缺点Keepalived 一.VRRP 协议介绍 1.1 VRRP Intro 一个问题 在计算机网络中#xff0c;交换机的一个功能是充当 LAN 网络上的主机到 WAN 的网关。 在规模比较大的 LAN 中#xff0c;可能需要两个或多个交换机来充当网关#xff0c;其中的主机 使用动态路由协议(如 RIP 或 OSP…Keepalived 一.VRRP 协议介绍 1.1 VRRP Intro 一个问题 在计算机网络中交换机的一个功能是充当 LAN 网络上的主机到 WAN 的网关。 在规模比较大的 LAN 中可能需要两个或多个交换机来充当网关其中的主机 使用动态路由协议(如 RIP 或 OSPF)来确定作为下一跳以到达特定的目的 IP 地址的网关交换机。然而有许多因素如管理上或处理开销上的原因使得我们 不希望使用动态路由协议。一种选择是使用静态路由。但是如果静态路由所 指定的第一跳网关出故障那么 LAN 中配置该条静态路由的主机将无法与 WAN 中的主机通讯。 VRRP 可以解决这个问题 VRRP(Virtual Router Redundancy Protocol)虚拟主机冗余协议定义于 RFC 5798 (VRRP Version 3 for IPv4 and IPv6)。其将两个或者多个物理路由器合并到一个称 为虚拟路由器(VR:Virtual Router)的逻辑组中。然后这些合并的物理路由(此时叫 Virtual Router)为 LAN 中的主机提供一个逻辑上的网关。 一个虚拟路由器包含多个物理路由器并被配置为其它主机的网关。其它主机只能看到 虚拟路由器而无法觉察到组成该虚拟路由的物理路由器。不管物理路由坏了多少个 只要该虚拟路由器中至少还有一个物理路由器正常工作从其它主机发出的数据包或 者发往这些主机的数据包依然会被虚拟路由器转发。这样就实现了网络的高可用。也 就是说虚拟路由器冗余协议(VRRP)消除了静态默认路由环境中固有的单点故障。VRRP 指定一个选举协议动态地将虚拟路由器的职责分配给局域网上的一个网络设备。 1.1.2 VRRP 协议简介 在 VRRP 协议关联的虚拟路由器中虚拟路由器由主路由器和多个备份路由器组成 。主路由器是负责在主机和远程网络之间转发数据包的路由器。它还负责通知备份路由 器它的存在性即通过固定时间间隔的多播特定数据包给其备份路由器。如果主路由器 出现故障则其中一个备份路由器将接管主路由器角色。 控制与虚拟路由器相关联的 IP 地址的物理路由器称为 master 路由器并转发发送 给这些 IP 地址的数据包。当 master 不可用时一个备份物理路由器会代替 master。 虚拟路由器使用一个特殊的保留 MAC 地址称为VRRP virtual MAC。这个 MAC 地 址由虚拟路由器的主路由器在任何与网关 IP 地址相关的 ARP 响应中返回不管哪个 设备充当主路由器。通过跨路由器使用这个共享的 MAC 地址如果路由器发生故障 由备份接管主机主机就可以保持与远程网络的连接。 VRRP 指定了一个选举协议来提供前面描述的虚拟路由器功能。所有协议消息传递都是 使用 IP 多播数据报实现。每个 VRRP 虚拟路由器都有一个众所周知的 MAC 地址分配 给它。虚拟路由器 MAC 地址被用作所有由主路由器发送的周期性 VRRP 消息的源以 使扩展局域网中的桥接学习成为可能。与虚拟路由器关联的虚拟路由器 MAC 地址是 IEEE 802 MAC 地址格式如下: 00005E0001 00-00-5E-00-01-{VRID}: (00-01)表示分配给 VRRP 协议的地址块。{VRID}是 VRRP 虚拟路由器标识符。表示提供网络上最多 255 个 VRRP 虚拟路由器。 虚拟路由器由它的虚拟路由器标识符(VRID)和一组 IP 地址定义。VRRP 路由器可 以将虚拟路由器与其在接口上的真实地址相关联也可以配置附加的虚拟路由器映射和 它愿意备份的虚拟路由器的优先级。VRID 和地址之间的映射必须在 LAN 上的所有 VRRP 路由器之间进行协调。VRID 一般由管理员定义每个虚拟路由器的 VRID 必须 唯一。 当一个路由器充当虚拟路由器的 master 角色时它负责以下工作: 响应包含与虚拟路由器相关联的 IP 地址的 ARP 和邻居请求包。ARP 应答或邻居 响应数据包含有虚拟路由器的虚拟 MAC 地址以便 LAN 上的主机将虚拟 MAC 地 址与其配置的第一跳 IP 地址相关联。注意VRRPv3 支持 IPv4 和 IPv6这里 的 IP 地址可以是 IPv4 或 IPv6 地址。其转发数据包的目的链路层 MAC 地址等于虚拟路由器的 MAC 地址。定期广播 advertisement 数据包(在指定的 advertisement 数据包广播间隔内) 通知备份路由器它仍然充当主路由器角色。 在虚拟路由器中的其它路由器被认为是备用路由器。物理路由器是一个局域网上多个不同的 虚拟路由器的成员每个虚拟路由器必须有一个唯一的标识符(VRID)。 当一个路由器充当虚拟路由器的备份路由器角色时它必须能够执行以下任务: 从 master 接收 advertisement 报文检查报文中包含的信息是否与自身配置一致; 忽略和丢弃不匹配的 advertisement 包。如果在给定的时间内(master 停机时间)没有接收到基于指定间隔发送的 advertisement 数据包则该备份路由需要承担 master 的角色master 停机时间大概是 advertisement 数据包发送间隔的三倍。如果从另一个路由器接收到的 advertisement 数据包标识的优先级低于该备份路由器的 优先级并且处于抢占模式则该备份路由器也将承担 master 角色。 1.1.3 VRRP 数据包 VRRP 数据包结构: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WkncKsTo-1692580181156)(png/2020-02-02-16-12-22.png)] VRRP 数据包被封装在 IP 包中发送。它们被发送到分配给 VRRP 的 IPv4 多播地址。 多播地址为 D 类地址每个 D 类地址都标识一个多播组D 类地址范围 224.0.0.0-239.255.255.255 VRRP 数据包的各个字段 字段说明Versionversion 字段指定此包的 VRRP 协议版本Typetype 字段指定此 VRRP 包的类型。此协议版本中定义的唯一包类型是:1 ADVERTISEMENTVirtual Rtr ID(VRID)虚拟路由器标识符(VRID)字段标识此包报告状态的目标虚拟路由器。Prioritypriority 字段指定发送 VRRP 包的路由器的优先级。值越大优先级越高。这个字段是 8 位无符号整型。拥有与虚拟路由器相关联的 IP 地址的 VRRP 路由器的优先级值必须是 255(十进制)。支持虚拟路由器的 VRRP 路由器必须使用 1-254(十进制)之间的优先级值。支持虚拟路由器的 VRRP 路由器的默认优先级值是 100(十进制)。优先级值 0 具有特殊的意义它指示当前 master 已经停止参与 VRRP 选举。这是用来触发备份路由器快速转换到 master而不必等待当前 master 超时。IP Address Count此 VRRP 通告中包含的 IP 地址数量Authentication Typeauthentication 类型字段标识所使用的身份验证方法。身份验证类型在每个接口上都是惟一的。authentication 类型字段是一个 8 位无符号整数。必须丢弃身份验证类型未知或与本地配置的身份验证方法不匹配的包。目前定义的认证方法有: 0 -无认证;1 -简单的文本密码认证;2 - IP 认证报头认证Advertisement Interval广播通告间隔表示各个 advertisement 数据包之间的时间间隔(以秒为单位)默认为 1 秒。此字段用于对配置错误的路由器进行故障排除Checksumchecksum 字段用于检测 VRRP 消息中的数据损坏。为了计算校验和校验和字段被设置为 0。IP Address(es)一个或多个与虚拟路由器相关联的 IP 地址。包含的地址数在Count IP Addrs字段中指定。这些字段用于对配置错误的路由器进行故障排除Authentication Data身份验证字符串目前仅用于简单的文本身份验证 1.2 VRRP 的 master 选择和抢占模式 如果当前的 master 路由器变得不可用则具有(除了当前 master)最高优先级的备份路由器 将接管 master 角色。优先级是 1 到 255 之间的值默认为 100。值 255 保留给拥有虚拟 路由器 IP 地址的路由器。新 master 接管了原来 master 的所有职责。 默认情况下当一个优先级高于 master 的路由器可用时这个路由器将接管主服务器。这种 工作模式称为抢占模式(preempt mode)可以设置为 on 或 off。即使在抢占模式关闭的 情况下拥有 IP 地址的路由器在可用时也总是成为主机。抢占模式应该对虚拟路由器中的所 有路由器都是一样的。 如果两个路由器被配置为具有相同的优先级并且当它们同时转换到 master 路由器时发生冲 突则具有最大的 IP 地址的路由器具有更高的优先级。由于时间的不同冲突可能不会频繁 发生可以简单的认为第一个响应的路由器将成为 master。 即使拥有 IP 地址的路由器当前不可用LAN 上的主机仍可以继续将数据包发送到它们最初与 第一个跃点 IP 地址相关联的虚拟 MAC 地址。当最初的路由器再次可用时如果它是一个优先 路由器(即它拥有虚拟路由器 IP 地址)那么它将恢复 master 路由器器的角色。 以上对于 master 的选取都工作在 IPv4 下。 二.Keepalived 介绍 2.1 Keepalived 介绍 Keepalived 是 VRRP 协议的软件实现最开始设计目的为了实现 ipvs 服务的高可用。 实质上 Keepalived 是使用 C 语言开发的路由软件。其实现的负载均衡框架依赖于 IPVS 内核模块提供 4 层负载均衡。Keepalived 实现了一组checker以根据服务器 的健康性来动态的管理处于负载均衡状态的服务器池。另一方面在 Keepalived 中 HA 高可用是 VRRP 协议实现的。VRRP 是路由器故障转移的基础。另外Keepalived 还针对 VRRP 协议的优先状态机实现了一组hook以便提供底层的和高速的协议交互。 Keepalived 功能 可以基于 VRRP 协议完成地址流动为 VIP 地址所在的节点生成 ipvs 规则(在配置文件中预先定义)为 IPVS 集群的各 RS 做健康状态检测基于脚本调用接口通过执行脚本完成脚本中定义的功能进而影响集群事务并以此 来支持 nginx、haproxy 等其它高可用和负载均衡服务 2.2 Keepalived 组件 Keepalived 服务 为了确保鲁棒性和稳定性Keepalived 守护程序分为 3 个不同的进程。其全局设计 基于负责派生子进程并监控的简约父进程父进程派生两个子进程一个负责 VRRP 框架另一个负责健康检查。每个子进程都有自己的调度 I/O 多路复用器由于 VRRP 调度比运行状况检查程序更关键因此这种做法可以优化 VRRP 调度时的抖动。另一方 面这种拆分设计可最大限度地减少对三方库的使用情况的运行状况检查并最大程度 地降低其在主循环和空闲主循环之间的操作从而避免自身引起的故障。父进程监控框 架称为看门狗(watchdog)其设计是每个子进程打开一个接收连接的 unix域套接字然后在守护程序引导时父进程连接到那些 unix域套接字并向 子进程发送定期(5s)的 “hello” 数据包。如果父进程无法将 hello 数据包发送到 连接的 Unix 域套接字则只需重启子进程即可。这种看门狗设计具有 2 个好处 首先通过 I/O 复用器调度程序完成从父进程发送到远程连接的子进程的 hello 数 据包从而可以检测子进程调度框架中的死循环。第二个好处是可以通过使用 sysV 信号 检测不可用(dead)的子进程。 Keepalived 运行时在进程列表中会看到类似的情况 PID 111 Keepalived -- Parent process monitoring children 112 \_ Keepalived -- VRRP child 113 \_ Keepalived -- Healthchecking child2.2.1 Control Plane Keepalive 的实际应用中通过文件 keepalived.conf 完成 Keepalived 配置。 解析该配置文件使用了类似于编译器的设计实现了一个解析器。 解析器使用关键字树 层次结构来将每个配置关键字与细节处理程序进行映射。 中央多级递归函数读取 配置文件并遍历关键字树。 在解析期间配置文件被转换为内部存储器表示。 2.2.2 Scheduler - I/O Multiplexer 所有事件都被安排在同一进程中。 Keepalived 是一个单一的进程。 Keepalived 是 一种网络路由软件其非常接近 I/O 。 Keepalived 的 I/O 多路复用器使用的设计是一 种中央选择机制负责调度所有内部任务。 没有使用 POSIX 线程库。 该框架提供了 针对网络目的而优化的线程抽象。 2.2.3 Memory Management 该框架为某些通用内存管理功能(例如分配重新分配释放等)提供访问权限。该框架 可以在两种模式下使用normal_mode 和 debug_mode。 使用 debug_mode 时它提 供了一种强大的方法来消除和跟踪内存泄漏。此底层环境通过跟踪分配内存和释放内存 来提供缓冲区运行不足保护。所有使用的缓冲区的长度都是固定的以防止最终出现缓 冲区溢出。 2.2.4 Core components 该框架定义了所有代码中都使用的一些通用库和全局库。这些库有html 解析 链接列表计时器向量字符串格式化缓冲区转储网络实用程序守护程 序管理pid 处理TCP layer4 抽象。 该框架的目标是将代码分解为最大数量 以限制尽可能多的代码重复以增强模块化。 2.2.5 WatchDog 该框架提供了子进程监控(VRRP 和运行状况检查)。每个子进程都与其自己的 watchdog 通过 unix 域套接字连接。 父进程将hello消息发送到此子进程的 unix 域套接字。 Hello 消息在父端使用 I/O 复用器发送并在子端使用 I/O 复用器接受/处理。 如果 父级检测到管道损坏则使用 sysV 信号测试子进程是否仍然存在然后重新启动它。 2.2.6 Checkers 健康性检查是 Keepalived 的主要功能之一。 Checkers 负责 realserver 的运行 状况检查。Checker 负责测试 realserver 是否处于活动状态该测试以二进制决定 结束结果是从 LVS 拓扑中删除或添加 realserver。内部 Checker 的设计是以实时 网络软件为标准的它使用完全多线程的 FSM 设计(Finite State Machine 有限状态机) 。Checkers 框架根据第 4 层至第 5 或 7 层测试结果提供 LVS 拓扑操作。它在由 父进程监视的独立进程中运行。 2.2.7 VRRP Stack VRRP 栈是 Keepalived 另一个最重要的功能。 VRRP(虚拟路由器冗余协议RFC5798) 专注于 Director 主机的故障转移它为路由器备份技术提供了底层设计。它实现了 完整的 IETF RFC2338 标准并为 LVS 和防火墙设计提供了一些规定和扩展。 它 实现了 vrrp_sync_group 扩展可确保协议接管后的持久路由路径。 它使用 MD5-96 位密码提供来实现 IPSEC-AH以确保协议通告数据交换的安全。有关 VRRP 的更多信息 可以阅读 RFC。重要事项VRRP 代码可以在没有 LVS 支持的情况下使用它是为独立 使用而设计的。它可以在受父进程监视的独立进程中运行。 2.2.8 System call 该框架提供了启动额外系统脚本的能力。它主要用于 MISC 检查器中。在 VRRP 框架中 它提供了在协议状态转换期间启动额外脚本的功能。系统调用在一个 fork 后的进程中完 成以不影响全局调度计时器。 Netlink Reflector 与 IPVS wrapper 相同。 Keepalived 使用其自己的网络接口表现层。IP 地址和接口 标志通过内核 Netlink 通道进行设置和监视。 Netlink 消息子系统用于设置 VRRP 的 VIP。 另一方面Netlink 内核消息传递广播功能用于将与接口有关的任何事件反 映到用户空间的 Keepalived 内部数据表示中。因此任何其他用户空间(其他程序) 的网络链接操作都会通过网络链接内核广播(RTMGRP_LINK 和 RTMGRP_IPV4_IFADDR) 反映到 Keepalived 数据表示中。 IPVS wrapper 该框架用于将 IPVS 规则发送到内核中的 IPVS 代码。它提供了 Keepalived 内部数据 表示和 IPVS rule_user 表示之间的转换。它使用 IPVS libipvs 来保持与 IPVS 代码 的通用集成。 2.3 Keepalived 术语 术语说明备注Virtual Router虚拟路由器包含个物理路由的虚拟路由器VRID(0-255)虚拟路由器标识唯一标识虚拟路由器master主设备虚拟路由器中的 masterbackup备用设备虚拟路由器中的 backuppriority优先级分配给虚拟路由器中的各物理路由器的数字VIPVirtual IP虚拟 IP 地址VMACVirutal MAC (00-00-5e-00-01-VRID)虚拟 MAC 地址advertisement packet通告数据包通知备份服务器 master 的存在性工作方式抢占式非抢占式-认证方式无认证 或者 简单字符认证预共享密钥-工作模式主备或者主主模式主/备单虚拟路由器 主/主主/备(虚拟路由器 1)备/主(虚拟路由器 2)互为主备 三.Keepalived 安装与简单配置 3.1 Keepalived 安装 yum install keepalived (CentOS) apt-get install keepalived (Ubuntu) 程序环境 主配置文件/etc/keepalived/keepalived.conf主程序文件/usr/sbin/keepalived Unit File /usr/lib/systemd/system/keepalived.service (CentOS)/lib/systemd/system/keepalived.service (Ubuntu) Unit File 的环境配置文件 /etc/sysconfig/keepalived 3.2 Keepalived 简单配置 3.2.1 Keepalived 配置组成和语法 3.2.1.1 配置文件组件 TOP HIERACHY # 顶层配置 GLOBAL CONFIGURATION # 全局配置Global definitions # 全局定义VRRP CONFIGURATION # VRRP协议相关配置VRRP instance(s) # VRRP虚拟路由器LVS CONFIGURATION # LVS配置Virtual server group(s) # 服务器组Virtual server(s) # ipvs集群的vs和rs3.2.1.2 配置文件概览 $ vim /etc/keepalived/keepalived.conf! Configuration File for keepalived global_defs { # 全局配置notification_email { # 邮件通知keepalived故障时发通知邮件rootlocalhost # 邮箱地址}notification_email_from keepalivedlocalhost # 邮件从哪发出去smtp_server 127.0.0.1 # 邮件服务器stmp地址smtp_connect_timeout 30 # 超时时间router_id ka1 # 主机名#vrrp_skip_check_adv_addr#vrrp_strict # 严格遵守vrrp协议没有vip单播地址ipv6将无法启动#vrrp_iptables # 不生成iptables规则vrrp_mcast_group4 224.100.100.100 # 组播,默认发224.0.0.18#vrrp_garp_interval 0 # arp报文发送延迟#vrrp_gna_interval 0 # 消息发送延迟 }# 定义vrrp虚拟路由器实例。一个配置文件中可以实现多实例但不同主机上互为master--backup的实例名需相同vrrp_instance VI_1 { # 配置实例的名称nopreempt # 定义工作模式为非抢占模式preempt_delay 300 # 抢占式模式节点上线后触发新选举操作的延迟时长默认模式state MASTER # 主MASTER从BACKUPinterface eth0 # 绑定为当前虚拟路由器使用的物理接口:即接收或发送心跳通告的接口即HA监测接口virtual_router_id 66 # 虚拟路由标识(VRID)同一实例该数值必须相同即master和backup中该值相同# 同一网卡上的不同vrrp实例该值必须不能相同。取值范围0-255priority 100 # 优先级范围1-254# 高于state选项即若state指定的是backup但这里设置的值最高则仍为masteradvert_int 1 # vrrp通告的时间间隔默认1sauthentication { # 认证方式同一实例中这个配置必须完全一样才可通过认证。只建议使用PASS认证auth_type PASS # {AH|PASS},设置密码类型auth_pass 123 # 最多支持8字符超过8字符将只取前8字符}virtual_ipaddress { # 设置的VIP。只有master节点才会设置。master出现故障后VIP会故障转移到backup。# 这些vip默认配置在interface指定的接口别名上可使用dev选项来指定配置接口# 使用ip add的方式添加。若要被ifconfig查看在IP地址后加上label即可# IPADDR/MASK brd IPADDR dev STRING scope SCOPE label LABEL192.168.99.99/24 dev eth0 label eth0:1 #设置虚拟网卡}track_interface { # 配置监控网络接口一旦出现故障则转为FAULT状态 实现地址转移eth0} }# 定义虚拟服务器部分 virtual_server 192.168.200.100 443 { # 虚拟服务地址和端口使用空格分隔其中地址为VIPdelay_loop 6 # 健康检查时间间隔lb_algo rr # 定义负载均衡LB的算法这里使用的是rr调度算法lb_kind NAT # lvs的模型有NAT/DR/TUN三种nat_mask 255.255.255.0persistence_timeout 50 # 持久会话保持时长protocol TCP # 监控服务的协议类型1.3.0版本之前只支持tcp之后还支持udpreal_server 192.168.201.100 443 { # 定义real_server部分地址和端口使用空格分隔weight 1 # LVS权重SSL_GET { # 健康状况检查的检查方式常见的有HTTP_GET|SSL_GET|TCP_CHECK|MISC_CHECK。url {path / # 指定ssl_get健康状况检查的路径例如检查index.html是否正常digest ff20ad2481f97b1754ef3e12ecd3a9cc# 健康状况需要状态码可以是status_code、digest或digeststatus_code# digest值用keepalived的genhash命令生成一般使用status_code即可status_code 200}url {path /mrtg/digest 9b3a0c85a887a256d6939da88aabd8cd}connect_timeout 3 # 表示3秒无响应就超时即此realserver不健康需重试连接nb_get_retry 3 # 表示重试3次3次之后都超时就是宕机防止误伤(nbnumber)delay_before_retry 3 # 重试的时间间隔# 上述配置需12秒才能判断节点故障时间太久应改小}} } virtual_server 10.10.10.2 1358 {delay_loop 6lb_algo rrlb_kind NATpersistence_timeout 50protocol TCPsorry_server 192.168.200.200 1358 # 定义当所有Real server都宕机的时候由哪台服务器继续提供服务# 一般在keepalived本机给定一个web页面提示网站正在维护的信息real_server 192.168.200.2 1358 {weight 1HTTP_GET {url {path /testurl/test.jspdigest 640205b7b0fc66c1ea91c463fac6334d}url {path /testurl2/test.jspdigest 640205b7b0fc66c1ea91c463fac6334d}url {path /testurl3/test.jspdigest 640205b7b0fc66c1ea91c463fac6334d}connect_timeout 3nb_get_retry 3delay_before_retry 3}} }3.2.1.2 配置语法 配置虚拟路由器 vrrp_instance STRING {... }配置参数说明 参数含义state MASTER|BACKUP当前节点在此虚拟路由器上的初始状态状态为 MASTER 或者 BACKUPinterface IFACE_NAME绑定为当前虚拟路由器使用的物理接口例如ens32,eth0,bond0,br0virtual_router_id VRID当前虚拟路由器惟一标识范围是 0-255priority 100当前物理节点在此虚拟路由器中的优先级范围 1-254advert_int 1vrrp 通告的时间间隔默认 1s 认证机制配置 authentication { auth_type AH|PASS auth_pass PASSWORD # 仅前8位有效 }VIP 配置 virtual_ipaddress { IPADDR/MASK brd IPADDR dev STRING scope SCOPE label LABEL 192.168.200.17/24 dev eth1 192.168.200.18/24 dev eth2 label eth2:1 }配置监控网络接口 track_interface { #配置监控网络接口一旦出现故障则转为FAULT状态实现地址转移 eth0 eth1 ... }四.Keepalived 生产配置 4.1 组播配置示例 4.1.1 MASTER 配置 master 配置如下 global_defs {notification_email {rootlocalhost# keepalived 发生故障切换时邮件发送的对象可以按行区分写多个主机} notification_email_from keepalivedlocalhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id ha1.example.com# 所有报文都检查比较消耗性能此配置为如果收到的报文和上一个报文是同一个路由器则跳过检查报文中的源地址 vrrp_skip_check_adv_addr# 严格遵守VRRP协议,不允许状况:1,没有VIP地址,2.配置了单播邻居,3.在VRRP版本2中有IPv6地址 vrrp_strictvrrp_garp_interval 0 # ARP报文发送延迟 vrrp_gna_interval 0 # 消息发送延迟# 默认组播IP地址224.0.0.0到239.255.255.255 vrrp_mcast_group4 224.0.0.18 #vrrp_iptables }vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 80 priority 100 advert_int 1 authentication { auth_type PASS auth_pass stevenux } virtual_ipaddress {192.168.7.248 dev eth0 label eth0:0 } }4.1.2 BACKUP 配置 global_defs {notification_email {rootlocalhost} notification_email_from keepalivedlocalhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id ha2.example.com vrrp_skip_check_adv_addr vrrp_strict # 严格遵守VRRP协议 vrrp_garp_interval 0 #ARP报文发送延迟 vrrp_gna_interval 0 #消息发送延迟 vrrp_mcast_group4 224.0.0.18 # 组播IP地址224.0.0.0到239.255.255.255 # vrrp_iptables }vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 80 priority 90 advert_int 1 authentication { auth_type PASS auth_pass stevenux }virtual_ipaddress {192.168.7.248 dev eth0 label eth0:0 } }4.2 VIP 单播配置 假设两台主机情况如下: 主机主机名10.20.0.100node110.20.0.200node2 node1 [rootkeep1 ~]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs {notification_email {acassenfirewall.locfailoverfirewall.locsysadminfirewall.loc}notification_email_from Alexandre.Cassenfirewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addr#vrrp_strict # 关闭组播功能#vrrp_mcast_group4 224.100.100.100vrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables # 关闭生成防火墙规则}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 66priority 100advert_int 1#nopreempt #非抢占模式当优先级更高的主机上线时不会抢占为主服务器authentication {auth_type PASSauth_pass stevenux}unicast_src_ip 10.20.0.100 # 单播的源地址写本机上的ip即可unicast_peer { # 如果有多个主机组成集群把其它主机ip都写上10.20.0.200}virtual_ipaddress {192.168.200.100 dev eth0 label eth0:1} }node2 [rootkeep2 ~]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs {notification_email {acassenfirewall.locfailoverfirewall.locsysadminfirewall.loc}notification_email_from Alexandre.Cassenfirewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addr#vrrp_strict#vrrp_mcast_group4 224.100.100.100vrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables}vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 66priority 80advert_int 1authentication {auth_type PASSauth_pass stevenux}unicast_src_ip 10.20.0.200 # 单播的源地址写本机上的ip即可unicast_peer {10.20.0.100 # 如果有多个主机组成集群把其它主机ip都写上}virtual_ipaddress {192.168.200.100 dev eth0 label eth0:1} }使用 tcpdump 抓包分析 tcpdump -i eth0 host -nn 172.18.200.101 and host 172.18.200.102 4.2 抢占和非抢占 4.2.1 配置为非抢占 使用nopreempt指令关闭 VIP 抢占需要各 keepalived 服务器 state 为 BACKUP vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 88 priority 100 advert_int 1 nopreempt ... }vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 88 priority 80 advert_int 1 nopreempt ... }4.2.2 配置抢占延迟 preempt_delay 60s 抢占延迟模式默认延迟 300s需要各 keepalived 服务器 state 为 BACKUP vrrp_instanceVI_1 { state BACKUP interface eth0 virtual_router_id88 priority 100 advert_int1 preempt_delay 60s # 抢占延迟模式默认延迟300s ... }vrrp_instanceVI_1 { state BACKUP interface eth0 virtual_router_id88 priority 80 advert_int1 ... }4.3 双主模式配置 双主模式即是互为主备的意思将两个或两个以上的 VIP 分别运行在不同的 keepalived 服务器以实现服务器并行提供 web 访问的目的提高服务器 资源利用率。 假设两台主机情况如下: 主机主机名10.20.0.100node110.20.0.200node2 node1 配置 [rootnode1 ~]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs {notification_email {acassenfirewall.locfailoverfirewall.locsysadminfirewall.loc}notification_email_from Alexandre.Cassenfirewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addr#vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables#vrrp_mcast_group4 224.100.100.100 }vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 66priority 100advert_int 1authentication {auth_type PASSauth_pass stevenux}unicast_src_ip 10.20.0.100unicast_peer {10.20.0.200}virtual_ipaddress {192.168.100.100 dev eth0 label eth0:1192.168.100.200 dev eth0 label eth0:2} }vrrp_instance VI_2{state BACKUPinterface eth0virtual_router_id 77priority 80advert_int 1authentication {auth_type PASSauth_pass stevenux}unicast_src_ip 10.20.0.100unicast_peer {10.20.0.200}virtual_ipaddress {192.168.200.100 dev eth0 label eth0:3192.168.200.200 dev eth0 label eth0:4} }node2 配置 [rootnode2 ~]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs {notification_email {acassenfirewall.locfailoverfirewall.locsysadminfirewall.loc}notification_email_from Alexandre.Cassenfirewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addr#vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables#vrrp_mcast_group4 224.100.100.100 }vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 66priority 80advert_int 1authentication {auth_type PASSauth_pass stevenux}unicast_src_ip 10.20.0.200unicast_peer {10.20.0.100}virtual_ipaddress {192.168.100.100 dev eth0 label eth0:1192.168.100.200 dev eth0 label eth0:2} }vrrp_instance VI_2 {state MASTERinterface eth0virtual_router_id 77priority 100advert_int 1authentication {auth_type PASSauth_pass stevenux}unicast_src_ip 10.20.0.200unicast_peer {10.20.0.100}virtual_ipaddress {192.168.200.100 dev eth0 label eth0:3192.168.200.200 dev eth0 label eth0:4} }4.4 Keepalived 开启通知 4.4.1 开启通知配置 邮件设置 $ yum install mailx -y $ vim ~/.mailrc 或 /etc/mail.rcset from12345678qq.com set smtpsmtp.qq.com set smtp-auth-user12345678qq.com set smtp-auth-passwordlzhdjmtznbftbiai set smtp-authlogin set ssl-verifyignore4.4.2 编写通知脚本 通知脚本示例 #!/bin/bash # contactrootlocalhost notify() {mailsubject$(hostname) to be $1, vip transferd.mailbody$(date %F %T): vrrp transition, $(hostname) changed to $1echo $mailbody | mail -s $mailsubject $contact } case $1 inmaster)notify master;;backup)notify backup;;fault)notify fault;;*)echo Usage: $(basename $0) {master|backup|fault}exit 1;; esac4.4.3 脚本调用 调用格式约定 notify_master STRING|QUOTED-STRING #当前节点成为主节点时触发的脚本notify_backup STRING|QUOTED-STRING #当前节点转为备节点时触发的脚本notify_fault STRING|QUOTED-STRING #当前节点转为“失败”状态时触发的脚本notify STRING|QUOTED-STRING #通用格式的通知触发机制一个脚本可完成以上三种状态的转换时的通知调用脚本的具体配置: vim /etc/keepalived/keepalived.conf# 在vrrp_instance VI_1 语句块最后面加下面行 notify_master /etc/keepalived/notify.sh master notify_backup /etc/keepalived/notify.sh backup notify_fault /etc/keepalived/notify.sh faultKeepalived 通知验证: 停止 keepalived 服务验证 IP 切换后是否收到通知邮件 4.5 Keepalived 与 IPVS 虚拟服务器配置参数 virtual server (虚拟服务)的定义 virtual_server IP port # 定义虚拟主机IP地址及其端口 virtual_server fwmark int # ipvs的防火墙打标实现基于防火墙的负载均衡集群 virtual_server group string # 将多个虚拟服务器定义成组将组定义成虚拟服务 virtual_server IP port { ...real_server {...} ... }delay_loop INT # 检查后端服务器的时间间隔 lb_algo rr|wrr|lc|wlc|lblc|sh|dh # 定义调度方法 lb_kind NAT|DR|TUN # 集群的类型 persistence_timeout INT # 持久连接时长 protocol TCP|UDP|SCTP # 指定服务协议 sorry_server IPADDR PORT # 所有RS故障时备用服务器地址 real_server IPADDR PORT {weight INT # RS权重notify_up STRING|QUOTED-STRING # RS上线通知脚本notify_down STRING|QUOTED-STRING # RS下线通知脚本HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHEC K { ... } # 定义当前主机的健康状态检测方法 }4.6 状态监测 4.6.1 应用层检测 HTTP_GET|SSL_GET # 应用层检测 HTTP_GET|SSL_GET {url {path URL_PATH # 定义要监控的URLstatus_code INT # 判断上述检测机制为健康状态的响应码} connect_timeout INTEGER # 客户端请求的超时时长, 等于haproxy的timeout server nb_get_retry INT # 重试次数 delay_before_retry INT # 重试之前的延迟时长 connect_ip IP ADDRESS # 向当前RS哪个IP地址发起健康状态检测请求 connect_port PORT # 向当前RS的哪个PORT发起健康状态检测请求 bindto IP ADDRESS # 发出健康状态检测请求时使用的源地址 bind_port PORT # 发出健康状态检测请求时使用的源端口 }4.6.2 TCP 层检测 传输层检测 TCP_CHECK TCP_CHECK { connect_ipIP ADDRESS # 向当前RS的哪个IP地址发起健康状态检测请求 connect_portPORT # 向当前RS的哪个PORT发起健康状态检测请求 bindtoIP ADDRESS # 发出健康状态检测请求时使用的源地址 bind_portPORT # 发出健康状态检测请求时使用的源端口 connect_timeoutINTEGER # 客户端请求的超时时长, 等于haproxy的timeout server }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912744.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

南阳网站推广优秀学习网站

QT 工程引入 QtXml QT 版本 6.6.1 Visual Studio 版本 Microsoft Visual Studio Community 2022 (64 位) - Current 版本 17.7.5 打开 Visual Studio 项目工程选择 工具栏 - 扩展 - QT VS Tools -Qt Project Settings 勾选 xml 后点击确定 点击应用即可 注意:配置环…

可以转app的网站怎么做的天津市北辰区建设与管理局网站

小编典典碰巧的是不久前我写了一个BigFraction类,用于解决Euler项目问题。它保留了BigInteger分子和分母,因此它将永远不会溢出。但是,对于许多你永远不会溢出的操作来说,这会有点慢。无论如何,请根据需要使用它。我一…

衡水冀县做网站wordpress微信快捷支付

人到中年有点甜获取Redis1、通过官网http://redis.io/获取稳定版源码包下载地址;2、通过wget http://download.redis.io/releases/redis-3.0.2.tar.gz下载 源码包;2编译安装Redis1、解压源码安装包,通过tar -xvf redis-3.0.2.tar.gz解压源码&…

杭州网络科技网站建设工程法律网站

在C语言中&#xff0c;你可以使用标准库中的文件操作函数来读取INI文件&#xff0c;然后解析其中的内容以找到对应的键和值。以下是一个简单的示例代码&#xff0c;演示如何实现这一过程&#xff1a; #include <stdio.h> #include <string.h>#define MAX_LINE_LEN…

ssh如何打开可视化界面

ssh如何打开可视化界面在远程 Ubuntu 系统上安装 X11sudo apt update sudo apt install xauth xorg openbox在本机通过 SSH 启用 X11 转发: 在连接时加上 -X 或 -Y 参数:ssh -Y username@remote_ip-X 会启用基本的 X…

淘宝上做网站的信得过吗东莞网站建设方案外包

移除视频声音是将视频指定的声音移除&#xff0c;可以选择移除人物声音还是视频的背景音乐&#xff0c;方便实现二次创作。 小编给大家推荐一些方法帮助大家更轻松地移除视频中的背景音乐或人物声音&#xff0c;有兴趣的朋友请自行百度查找&#xff0c;或小程序查找 1、方法&a…

html做旅游网站国外字体设计网站

mne-python脑电图和肌电图是一个开源软件分析、处理和显示。遵循bsd许可协议,由哈佛大学和共同开发的社区。主要功能包括:预处理和脑电图\/梅格信号的去噪,源估计、时频分析、统计测试,功能连接,机器学习,可视化的传感器、来源等外资支持最常见的原始数据格式。默认的(和附带的…

抚州市城乡建设局网站网站网页基本情况 网页栏目设置

一、源码特点 springboot 出租车管理系统是一套完善的完整信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c; 系统具有完整的源代码和数据…

卡密网站怎么做的苏州网站建设套餐

1、什么是硬间隔和软间隔&#xff1f; 当训练数据线性可分时&#xff0c;通过硬间隔最大化&#xff0c;学习一个线性分类器&#xff0c;即线性可分支持向量机。 当训练数据近似线性可分时&#xff0c;引入松弛变量&#xff0c;通过软间隔最大化&#xff0c;学习一个线性分类器…

怎么弄免费的空间做网站做网页和做网站的区别

[css] 如何解决css加载字体跨域的问题&#xff1f; 刚才碰到一个css加载字体跨域问题&#xff0c;记录一下。 站点的动态请求与静态文件请求是不同的域名的。站点的域名为 www.domain.com&#xff0c;而静态文件的域名为 st.domain.com。 问题&#xff1a; 页面中加载css文件&…

网站建设柚子网络科技在哪里希望小学学校网站建设方案

刚毕业的大学生&#xff0c;都怀揣着雄心壮志&#xff0c;出人头地 工作一两年后&#xff0c;技术提升的飞快&#xff0c;不断学习和使用新技术 工作三四年后&#xff0c;每个月的工资也以肉眼可见的速度提升着&#xff0c;工资开始以万为单位计算 工作五六年后&#xff0c;…

NanoCAD 24.0安装包下载地址与安装教程

NanoCAD 24.0 是一款功能全面且专业的国产CAD软件,支持64位操作系统,兼容Windows 11、Windows 10、Windows 8及Windows 7系统。该软件提供全功能DWG CAD平台,集成参数化3D实体建模工具,采用Autodesk Inventor风格界…

专业网站优化方案网站项目如何做需求分析报告

/*这是一个调用fork函数创建一个子进程&#xff0c;然后分别打印输出子进程和父进程中的变量的实例*/#include #include #include #include int glob 6; //外部变量int main(void){int var; //内部变量pid_t pid; //文件标识符var 88;//内部变量printf("…

深入解析:MES系统在不同制造行业中的应用差异与共性

深入解析:MES系统在不同制造行业中的应用差异与共性2025-09-23 13:41 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; dis…

改 187 个接口参数:Postman 卡壳时,Apipost 凭什么 5 分钟搞定?

当你第一次通过目录参数为 10 个接口批量添加模块参数,并自动继承全局配置时,会明白:好的工具,真的能让工作效率发生质变。作为一名有 8 年 API 测试的工程师,我曾无数次在 Postman 里重复着机械操作:凌晨 2 点紧…

使用AWS Amplify、Lambda、API Gateway和DynamoDB部署静态Web应用

本教程详细介绍了如何利用AWS无服务器服务构建完整的Web应用。通过创建简单的求和计算器,您将学习如何配置DynamoDB数据库、编写Lambda函数、设置API Gateway接口,并使用Amplify部署前端页面。整个架构无需管理服务器…

有没有做培养基的网站服务公司理念

【说明】文章内容来自《机器学习——基于sklearn》&#xff0c;用于学习记录。若有争议联系删除。 1、评价指标 对于模型的评价往往会使用损失函数和评价指标&#xff0c;两者的本质是一致的。一般情况下&#xff0c;损失函数应用于训练过程&#xff0c;而评价指标应用于测试过…

上海制作网站公司哪家好推广广告

存储引擎 MySQL体系结构 连接层&#xff1a; 最上层是一些客户端和连接服务&#xff0c;主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。服务层&#xff1a; 第二层架构主要完成大多数的核心服务功能&…

那个网站做国外售货用ps做网站尺寸

创作不易&#xff0c;请大家多鼓励支持。 在现实生活中&#xff0c;很多人的资料是不愿意公布在互联网上的&#xff0c;但是我们又要使用人工智能的能力帮我们处理文件、做决策、执行命令那怎么办呢&#xff1f;于是我们构建自己或公司的私人GPT变得非常重要。 先看效果 他的…

织梦采集侠官方网站济南 网站 建设

1.委托模式 委托模式&#xff1a;操作对象不会去处理某段逻辑&#xff0c;而是会把工作委托给另外一个辅助对象去处理。 例如我们要设计一个自定义类的来实现Set&#xff0c;可以将该实现委托给另一个对象&#xff1a; class MySet<T> (val helperSet: HashSet<T>…