开网站赚50万做网站建设培训资料

张小明 2026/1/10 14:55:37
开网站赚50万做,网站建设培训资料,免费企业信息发布平台,10个网站 云主机需求负载均衡-LVS 全解析 LVS 介绍 Linux 虚拟服务器(LVS#xff0c;Linux Virtual Servers) #xff0c;使用负载均衡技术将多台服务器组成一个虚拟服务器。它为适应快速增长的网络访问需求提供了一个负载能力易于扩展#xff0c;而价格低廉的解决方案。 LVS是 章文嵩博士 于19…负载均衡-LVS 全解析LVS 介绍Linux 虚拟服务器(LVSLinux Virtual Servers) 使用负载均衡技术将多台服务器组成一个虚拟服务器。它为适应快速增长的网络访问需求提供了一个负载能力易于扩展而价格低廉的解决方案。LVS是 章文嵩博士 于1998年创建的一款开源负载均衡软件。LVS工作在内核空间中能够根据请求报文的目标IP和目标 PORT 将请求调度转发至后端服务器集群中的某节点。LVS 术语调度器负载均衡器DirectorVirtual ServerVS后端服务器真实服务器Real ServerRSBackend Server调度器一般配两个IP地址VIP向外提供服务的IP地址DIP与后端RS通信的IP地址。RIPRS 的 IPCIP客户端的IP。LVS由 ipvsadm 和 ipvs 组成ipvsadm用户空间命令行工具用于在Director上定义集群服务和添加集群上的 Real Servers。ipvs工作于内核上 netfilter 中 INPUT 钩子上的程序代码。要想将某台主机配置为 Director首选确保当前内核支持 ipvs 并安装 ipvsadm。另外由于 Director 要调度转发所有客户端的请求负载压力较大生产环境中Director 不要使用虚拟机。工作原理ipvs使用内核netfilter子系统处理进入本机器的数据包当用户向负载均衡调度器Director Server发起请求调度器将请求发往至内核空间。PREROUTING 链首先会接收到用户请求判断目标IP确定是本机IP将数据包发往INPUT 链。IPVS 是工作在 INPUT 链上的代码块。当用户请求到达 INPUT 时IPVS 会将用户请求和自己已定义好的集群服务进行比对如果用户请求的就是定义的集群服务那么此时IPVS会强行修改数据包里的目标IP地址及端口并将新的数据包发往 POSTROUTING 链。POSTROUTING 链接收数据包后发现目标IP地址刚好是自己的后端服务器那么此时通过选路将数据包最终发送给后端的服务器。工作模式LVS 的常用工作模式有四种分别是lvs-natlvs-drlvs-tunlvs-fullnetNAT 模式工作方式通过将请求报文的目标地址和目标端口修改为某RS的IP和PORT来实现报文转发。原报文源IP源MAC目标IP目标MACClient IPClient MACDirector VIPDirector MAC更改为源IP源MAC目标IP目标MACClient IPClient MACRS IPRS MAC工作原理当用户请求到达Director Server此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP目标IP为VIP。PREROUTING检查发现数据包的目标IP是本机将数据包送至INPUT链。IPVS比对数据包请求的服务是否为集群服务若是修改数据包的目标IP地址为后端服务器IP后将数据包发至POSTROUTING链。 此时报文的源IP为CIP目标IP为RIP。POSTROUTING链通过选路将数据包发送给Real Server。Real Server比对发现目标为自己的IP开始构建响应报文发回给Director Server。 此时报文的源IP为RIP目标IP为CIP。Director Server在响应客户端前此时会将源IP地址修改为自己的VIP地址然后响应给客户端。 此时报文的源IP为VIP目标IP为CIP。特点RS应该和DIP应该使用私网地址且RS的网关要指向DIP请求和响应报文都要经由director转发极高负载的场景中director可能会成为系统瓶颈支持端口映射RS可以使用任意OSRS的RIP和Director的DIP必须在同一IP网络缺陷对Director Server压力会比较大请求和响应都需经过director serverdirector往往会成为系统的性能瓶颈DR 模式工作方式通过为请求报文重新封装一个MAC首部进行报文转发新Mac首部的源MAC是DIP所在网卡的MAC目标MAC为某RS所在接口的MAC整个过程源报文的IP首部不会发生变化源IP为CIP目标IP始终为VIP原报文源IP源MAC目标IP目标MACClient IPClient MACDirector VIPDirector MAC更改为源IP源MAC目标IP目标MACClient IPDirector DIP对应的MACDirector VIPRS MAC工作原理当用户请求到达Director Server此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP目标IP为VIPPREROUTING检查发现数据包的目标IP是本机将数据包送至INPUT链IPVS比对数据包请求的服务是否为集群服务若是将请求报文中的源MAC地址修改为DIP的MAC地址将目标MAC地址修改RIP的MAC地址然后将数据包发至POSTROUTING链。 此时的源IP和目的IP均未修改仅修改了源MAC地址为DIP的MAC地址目标MAC地址为RIP的MAC地址由于DS和RS在同一个网络中所以是通过二层来传输。POSTROUTING链检查目标MAC地址为RIP的MAC地址那么此时数据包将会发至Real Server。RS发现请求报文的MAC地址是自己的MAC地址就接收此报文。处理完成之后将响应报文通过lo接口传送给eth0网卡然后向外发出。 此时的源IP地址为VIP目标IP为CIP响应报文最终送达至客户端特点RS的lo网卡配置一个IP地址(地址为VIP)。确保路由器只会把目标IP为VIP的请求报文发往Director即会忽略RS上的VIP实现方案如下:路由器静态绑定Director的VIP和MAC地址禁止RS响应VIP的ARP请求(a) arptables(b) 修改各RS的内核参数并把VIP配置在特定的接口上实现禁止其响应RS的RIP跟Director的DIP必须在同一物理网络中RS的网关不能指向DIPRS的RIP可以使用私有地址也可以使用公网地址请求报文必须由Director调度但响应报文不经过DirectorRS直接用VIP作为源IP发送响应报文不支持端口映射缺陷RS和DS必须在同一机房中因为它是由二层进行转发的根据MAC地址来进行匹配TUN 模式工作模式不修改请求报文的IP首部源IP仍为CIP目标IP仍为VIP而是在原有的IP首部之外再封装一个IP首部源IP为DIP目标IP为RIP原报文源IP源MAC目标IP目标MACClient IPClient MACDirector VIPDirector MAC更改为封装源IP封装目标IP源IP源MAC目标IP目标MACDIPRIPClient IPClient MACDirector VIPDirector MAC工作原理当用户请求到达Director Server此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP目标IP为VIP 。PREROUTING检查发现数据包的目标IP是本机将数据包送至INPUT链IPVS比对数据包请求的服务是否为集群服务若是在请求报文的首部再次封装一层IP报文封装源IP为为DIP目标IP为RIP。然后发至POSTROUTING链。 此时源IP为DIP目标IP为RIPPOSTROUTING链根据最新封装的IP报文将数据包发至RS因为在外层封装多了一层IP首部所以可以理解为此时通过隧道传输。 此时源IP为DIP目标IP为RIPRS接收到报文后发现是自己的IP地址就将报文接收下来拆除掉最外层的IP后会发现里面还有一层IP首部而且目标是自己的lo接口VIP那么此时RS开始处理此请求处理完成之后通过lo接口送给eth0网卡然后向外传递。 此时的源IP地址为VIP目标IP为CIP响应报文最终送达至客户端特点RIPDIPVIP必须都是公网地址RS的网关不能也不可能指向DIP请求报文经由Director调度但响应报文将直接发给CIP不支持端口映射RS的OS必须支持IP隧道功能调度算法LVS的调度算法分为静态与动态两类。静态算法根据算法进行调度不考虑后端服务器的实际连接情况和负载情况。RR轮叫调度Round Robin调度器通过”轮叫”调度算法将外部请求按顺序轮流分配到集群中的真实服务器上它均等地对待每一台服务器而不管服务器上实际的连接数和系统负载WRR加权轮叫Weight RR调度器通过“加权轮叫”调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。DH目标地址散列调度Destination Hash 根据请求的目标IP地址作为散列键(HashKey)从静态分配的散列表找出对应的服务器若该服务器是可用的且未超载将请求发送到该服务器否则返回空。SH源地址 hashSource Hash源地址散列”调度算法根据请求的源IP地址作为散列键(HashKey)从静态分配的散列表找出对应的服务器若该服务器是可用的且未超载将请求发送到该服务器否则返回空动态算法前端的调度器会根据后端真实服务器的实际连接情况来分配请求。LC最少链接Least Connections调度器通过”最少连接”调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能采用”最小连接”调度算法可以较好地均衡负载。WLC加权最少连接(默认采用的就是这种)Weighted Least Connections在集群系统中的服务器性能差异较大的情况下调度器采用“加权最少链接”调度算法优化负载均衡性能具有较高权值的服务器将承受较大比例的活动连接负载调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。SED最短延迟调度Shortest Expected Delay 在WLC基础上改进Overhead ACTIVE1*256/加权不再考虑非活动状态把当前处于活动状态的数目1来实现数目最小的接受下次请求1的目的是为了考虑加权的时候非活动连接过多缺陷当权限过大的时候会倒置空闲服务器一直处于无连接状态。NQ永不排队/最少队列调度Never Queue Scheduling NQ无需队列。如果有台 realserver的连接数0就直接分配过去不需要再进行sed运算保证不会有一个主机很空间。在SED基础上无论几第二次一定给下一个保证不会有一个主机不会很空闲着不考虑非活动连接才用NQSED要考虑活动状态连接对于DNS的UDP不需要考虑非活动连接而httpd的处于保持状态的服务就需要考虑非活动连接给服务器的压力。LBLC基于局部性的最少链接locality-Based Least Connections基于局部性的最少链接”调度算法是针对目标IP地址的负载均衡目前主要用于Cache集群系统该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器若该服务器是可用的且没有超载将请求发送到该服务器;若服务器不存在或者该服务器超载且有服务器处于一半的工作负载则用“最少链接”的原则选出一个可用的服务器将请求发送到该服务器LBLCR带复制的基于局部性最少连接Locality-Based Least Connections with Replication带复制的基于局部性最少链接”调度算法也是针对目标IP地址的负载均衡目前主要用于Cache集群系统它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射而LBLC算法维护从一个目标IP地址到一台服务器的映射该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组按”最小连接”原则从服务器组中选出一台服务器若服务器没有超载将请求发送到该服务器若服务器超载则按“最小连接”原则从这个集群中选出一台服务器将该服务器加入到服务器组中将请求发送到该服务器同时当该服务器组有一段时间没有被修改将最忙的服务器从服务器组中删除以降低复制的程度。LVS 实践通过LVS实现httpd负载均衡。基本配置主机名网络/etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6###### lvs 代理集群 ######### lvs 主机记录一定要设置为 VIP 地址# 如果 lvs主机解析为 10.1.8.10则会导致ipvs规则的VIP变为10.1.8.1010.1.1.10 lvs lvs.shizhan.cloud10.1.8.11 web1 web1.shizhan.cloud10.1.8.12 web2 web2.shizhan.cloud10.1.8.13 web3 web3.shizhan.cloud10.1.8.20 router router.shizhan.cloud10.1.8.21 client1 client1.shizhan.cloud10.1.1.21 client2 client2.shizhan.cloudweb 服务器[rootweb1-3 ~]#yuminstall-y nginx systemctlenablenginx --nowechoWelcome to$(hostname)/usr/share/nginx/html/index.htmllvs 服务器[rootlvs ~]#yuminstall-y ipvsadm# systemctl enable ipvsadm# 等ipvs规则配置完成后再启动ipvsadm服务ipvsadm 命令## 定义集群服务ipvsadm -A|E -t|u|f service-address[-s scheduler][-p[timeout]][-M netmask]-A 表示添加一个新的集群服务 -E 编辑一个集群服务 -t 表示tcp协议 -u 表示udp协议 -f 表示firewall-Mark,防火墙标记 service-address 集群服务的IP地址即VIP -s 指定调度算法 -p 持久连接时长如#ipvsadm -Lcn 查看持久连接状态-M 定义掩码# 删除一个集群服务ipvsadm -D -t|u|f service-address# 清空所有的规则ipvsadm -C# 重新载入规则ipvsadm -R# 保存规则ipvsadm -S[-n]## 管理集群服务中RealServeripvsadm -a|e -t|u|f service-address -r server-address[-g|i|m][-w weight]-a 添加一个新的realserver规则 -e 编辑realserver规则 -t tcp协议 -u udp协议 -f firewall-Mark防火墙标记 service-address realserver的IP地址 -g 表示定八义为LVS-DR模型 -i 表示定义为LVS-TUN模型 -m 表示定义为LVS-NAT模型 -w 定义权重后面跟具体的权值# 删除一个realserveripvsadm -d -t|u|f service-address -r server-address# 查看定义的规则ipvsadm -L|l[options]ipvsadm -L -n# 清空计数器ipvsadm -Z[-t|u|f service-address]NAT 模式网络拓扑主机名IP地址服务器角色client2.shizhan.cloud10.1.1.21客户端client1.shizhan.cloud10.1.8.21客户端router.shizhan.cloud10.1.1.20, 10.1.8.20路由器lvs.shizhan.cloud10.1.1.10, 10.1.8.10LVS 服务器web1.shizhan.cloud10.1.8.11Web 服务器web2.shizhan.cloud10.1.8.12Web 服务器web3.shizhan.cloud10.1.8.13Web 服务器网络说明所有主机第一块网卡名为 ens33第二块网卡名为 ens192默认第一块网卡模式为nat第二块网卡模式为hostonly网关设置10.1.1.0/24 网段网关为10.1.1.1010.1.8.0/24 网段网关为10.1.8.10注意本次实验的网关指向 LVS 服务器。基础配置主机名IP 地址网关# 网关配置命令参考# 10.1.8.0/24 网段网关为10.1.8.10nmcli connection modify ens33 ipv4.gateway10.1.8.10 nmcli connection up ens33# 10.1.1.0/24 网段网关为10.1.1.10nmcli connection modify ens33 ipv4.gateway10.1.1.10 nmcli connection up ens33配置 web注意所有web都要执行以下命令。[rootweb1-3 ~]## 部署 webyuminstall-y nginxechoWelcome to$(hostname)/usr/share/nginx/html/index.html systemctlenablenginx.service --now# 访问后端 nginx[rootclient1 ~]# curl 10.1.8.11Welcome to web1.shizhan.cloud[rootclient1 ~]# curl 10.1.8.12Welcome to web2.shizhan.cloud[rootclient1 ~]# curl 10.1.8.13Welcome to web3.shizhan.cloud配置 LVS[rootlvs ~]## 开启路由echonet.ipv4.ip_forward1/etc/sysctl.conf# 或者# sed -i s/ip_forward0/ip_forward1/g /etc/sysctl.confsysctl -p# 设置防火墙systemctlenablefirewalld.service --now firewall-cmd --set-default-zonetrusted firewall-cmd --add-masquerade --permanent firewall-cmd --add-masquerade# 安装 ipvsadmyuminstall-y ipvsadm# ipvsadm 服务启动的时候从该文件中读取ipvs规则touch/etc/sysconfig/ipvsadm systemctlenableipvsadm --now# 创建轮询负载## 增加一个tcp模式虚拟IP调度模式轮询ipvsadm -A -t10.1.1.10:80 -s rr# 未虚拟IP增加后端真实主机模式masqueradeNATipvsadm -a -t10.1.1.10:80 -r10.1.8.11 -m ipvsadm -a -t10.1.1.10:80 -r10.1.8.12 -m ipvsadm -a -t10.1.1.10:80 -r10.1.8.13 -m# 保存转发规则到文件中ipvsadm-save -n/etc/sysconfig/ipvsadm# 核实配置是否生效[rootlvs ~]# ipvsadm -LnIP Virtual Server version1.2.1(size4096)Prot LocalAddress:Port Scheduler Flags -RemoteAddress:Port Forward Weight ActiveConn InActConn TCP10.1.1.10:80 rr -10.1.8.11:80 Masq100-10.1.8.12:80 Masq100-10.1.8.13:80 Masq100# 多次访问验证[rootclient2 ~]# for i in {1..90};do curl -s 10.1.1.10 ;done|sort|uniq -c30Welcome to web1.shizhan.cloud30Welcome to web2.shizhan.cloud30Welcome to web3.shizhan.cloud负载均衡模式更改为加权轮询。[rootlvs ~]## 修改 调度模式为带权重的轮询ipvsadm -E -t10.1.1.10:80 -s wrr# 设置权重为2ipvsadm -e -t10.1.1.10:80 -r10.1.8.12 -m -w2# 设置权重为3ipvsadm -e -t10.1.1.10:80 -r10.1.8.13 -m -w3[rootlvs ~]# ipvsadm -LnIP Virtual Server version1.2.1(size4096)Prot LocalAddress:Port Scheduler Flags -RemoteAddress:Port Forward Weight ActiveConn InActConn TCP10.1.1.10:80 wrr -10.1.8.11:80 Masq1030-10.1.8.12:80 Masq2030-10.1.8.13:80 Masq3030访问验证[rootclient2 ~]# for i in {1..90};do curl -s 10.1.1.10 ;done|sort|uniq -c15Welcome to web1.shizhan.cloud30Welcome to web2.shizhan.cloud45Welcome to web3.shizhan.cloud思考此时client1是否可以通过10.1.1.10访问后端服务器具体原因是什么答案不能访问。因为client1发出去的数据包是经过LVS的ipvs模块处理的而后端web服务器收到数据包后根据来源地址10.1.8.21进行回复也就是直接返回给client1导致数据包没有返回给LVS处理。如果不能需要如何配置才能实现访问[rootweb1-3 ~]# nmcli connection modify ens33 ipv4.routes 10.1.8.21 255.255.255.255 10.1.8.10[rootweb1-3 ~]# nmcli connection up ens33DR 模式网络拓扑主机名IP地址服务器角色client2.shizhan.cloud10.1.1.21客户端client1.shizhan.cloud10.1.8.21客户端router.shizhan.cloud10.1.1.20, 10.1.8.20路由器lvs.shizhan.cloud10.1.8.10LVS 服务器web1.shizhan.cloud10.1.8.11Web 服务器web2.shizhan.cloud10.1.8.12Web 服务器web3.shizhan.cloud10.1.8.13Web 服务器网络说明所有主机第一块网卡名为 ens33第二块网卡名为 ens192默认第一块网卡模式为 nat第二块网卡模式为 hostonly网关设置10.1.1.0/24 网段网关为10.1.1.2010.1.8.0/24 网段网关为10.1.8.20基础配置主机名IP 地址网关# 网关配置命令参考# 10.1.8.0/24 网段网关为10.1.8.20nmcli connection modify ens33 ipv4.gateway10.1.8.20 nmcli connection up ens33# 10.1.1.0/24 网段网关为10.1.1.20nmcli connection modify ens33 ipv4.gateway10.1.1.20 nmcli connection up ens33配置 router# 开启路由echonet.ipv4.ip_forward1/etc/sysctl.conf# 或者# sed -i s/ip_forward0/ip_forward1/g /etc/sysctl.confsysctl -p配置 web注意所有web都要执行以下命令。[rootweb1-3 ~]## 部署 webyuminstall-y nginxechoWelcome to$(hostname)/usr/share/nginx/html/index.html systemctlenablenginx.service --now# 访问后端 nginx[rootclient1 ~]# curl 10.1.8.11Welcome to web1.shizhan.cloud[rootclient1 ~]# curl 10.1.8.12Welcome to web2.shizhan.cloud[rootclient1 ~]# curl 10.1.8.13Welcome to web3.shizhan.cloud配置 LVS-RS所有后端主机都要做相同配置。[rootweb1-3 ~]## 增加虚拟网卡子网掩码一定要设置为 32 位nmcli connectionaddtypedummy ifname dummy con-name dummy ipv4.method manual ipv4.addresses10.1.8.100/32 nmcli connection up dummy# 配置 arp 参数关闭arp对dummy网卡的解析cat/etc/sysctl.confEOF net.ipv4.conf.all.arp_ignore 1 net.ipv4.conf.all.arp_announce 2 net.ipv4.conf.dummy.arp_ignore 1 net.ipv4.conf.dummy.arp_announce 2 EOFsysctl -p内核参数net.ipv4.conf.all.arp_ignore作用控制主机收到 ARP 请求时是否回复 ARP 响应即是否告知对方 “该 IP 对应的 MAC 地址是我”。参数值及含义参数值行为说明0默认只要本机有该 IP 地址无论哪个网卡就回复 ARP 响应。问题多网卡场景下可能导致 “ARP 漂移”例如网卡 A 的 IP 被网卡 B 响应。1仅当 ARP 请求的目标 IP 与接收请求的网卡上的主 IP完全匹配时才回复响应。 主 IP 指网卡配置的第一个 IP 地址2仅当 ARP 请求的目标 IP 与接收请求的网卡上的任一 IP包括 secondary IP匹配时才回复响应。3不回复 ARP 请求除非是本地环回地址。4-7更复杂的策略如忽略来自非本网络的请求较少使用。典型场景服务器有多个网卡如eth0、eth1分别属于不同子网需避免跨网卡响应 ARP 请求。配置虚拟 IP如 Keepalived 高可用集群的 VIP时防止非主节点响应 VIP 的 ARP 请求。内核参数net.ipv4.conf.all.arp_announce作用控制主机发送 ARP 通告主动告知 “我的 IP 对应的 MAC 地址”时如何选择源 IP 地址。参数值及含义参数值行为说明0默认允许使用任意本地 IP 作为 ARP 通告的源 IP可能选择与目标网络无关的 IP。问题跨子网通信时可能导致其他主机学习到错误的 IP-MAC 映射。1尽量使用与目标 IP 同子网的本地 IP 作为源 IP若没有则使用接收接口的 IP。2推荐严格选择与目标 IP 同子网的本地 IP 作为源 IP若没有则不发送 ARP 通告或使用环回地址。典型场景多网卡服务器访问外部网络时确保 ARP 通告的源 IP 属于目标网络所在的子网避免其他主机误将 IP 关联到错误的网卡 MAC。负载均衡或高可用集群中防止虚拟 IP 被错误的物理网卡 MAC 通告。配置 LVS-DS[rootlvs ~]## 配置虚拟网卡nmcli connectionaddtypedummy ifname dummy con-name dummy ipv4.method manual ipv4.addresses10.1.8.100/32 nmcli connection up dummy# 安装 ipvsadmyuminstall-y ipvsadmtouch/etc/sysconfig/ipvsadm systemctlenableipvsadm --now# 创建轮询负载ipvsadm -A -t10.1.8.100:80 -s rr ipvsadm -a -t10.1.8.100:80 -r10.1.8.11:80 ipvsadm -a -t10.1.8.100:80 -r10.1.8.12:80 ipvsadm -a -t10.1.8.100:80 -r10.1.8.13:80 ipvsadm-save -n/etc/sysconfig/ipvsadm# 核实配置是否生效[rootlvs ~]# ipvsadm -LnIP Virtual Server version1.2.1(size4096)Prot LocalAddress:Port Scheduler Flags -RemoteAddress:Port Forward Weight ActiveConn InActConn TCP10.1.8.100:80 rr -10.1.8.11:80 Route100-10.1.8.12:80 Route100-10.1.8.13:80 Route100# Forward 值为 Route代表当前模式为 DR访问验证[rootclient1 ~]# for i in {1..90};do curl -s 10.1.8.100 ;done|sort|uniq -c30Welcome to web1.shizhan.cloud30Welcome to web2.shizhan.cloud30Welcome to web3.shizhan.cloud[rootclient2 ~]# for i in {1..90};do curl -s 10.1.8.100 ;done|sort|uniq -c30Welcome to web1.shizhan.cloud30Welcome to web2.shizhan.cloud30Welcome to web3.shizhan.cloud参考脚本Real Server 配置#!/bin/bash# description : 配置Real Server./etc/rc.d/init.d/functionsVIP10.1.8.100case$1instart)echo-nStart LVS Real Server ... # 设置 VIPifnmcli connection|grep-q dummy;thennmcli connection modify dummy ipv4.method manual ipv4.addresses$VIP/32elsenmcli connectionaddtypedummy ifname dummy con-name dummy ipv4.method manual ipv4.addresses$VIP/32finmcli connection up dummy# 关闭 ARPecho1/proc/sys/net/ipv4/conf/all/arp_ignoreecho2/proc/sys/net/ipv4/conf/all/arp_announceecho1/proc/sys/net/ipv4/conf/dummy/arp_ignoreecho2/proc/sys/net/ipv4/conf/dummy/arp_announceechoOK;;stop)echo-nStop LVS Real Server ... # 关闭 VIPnmcli connection delete dummy# 启用 ARPecho0/proc/sys/net/ipv4/conf/dummy/arp_ignoreecho0/proc/sys/net/ipv4/conf/dummy/arp_announceecho0/proc/sys/net/ipv4/conf/all/arp_ignoreecho0/proc/sys/net/ipv4/conf/all/arp_announceechoOK;;*)echoUsage:$0start|stopexit1;;esacDirector Server 配置#!/bin/bash# description : 配置 Director Server./etc/rc.d/init.d/functions# 安装 ipvsadmifrpm-q ipvsadm/dev/null;thentrueelseyuminstall-y ipvsadm/dev/nullfiVIP10.1.8.100PORT80rs110.1.8.11rs210.1.8.12rs310.1.8.13interfaceens33con_nameens33ipv/sbin/ipvsadmcase$1instart)echo-nStart LVS Director Server ... # 设置 VIPifip-br addr|grep-q$VIP;thentrueelsenmcli connection modify${con_name}ipv4.addresses$VIP/32 nmcli connection up${con_name}fi# 设置 LB$ipv-C$ipv-A -t$VIP:${PORT}-s wrr$ipv-a -t$VIP:${PORT}-r$rs1:${PORT}-g -w1$ipv-a -t$VIP:${PORT}-r$rs2:${PORT}-g -w1$ipv-a -t$VIP:${PORT}-r$rs3:${PORT}-g -w1echoOK;;stop)echo-nStop LVS Director Server ... # 关闭 VIPifip-br addr|grep-q$VIP;thennmcli connection modify${con_name}-ipv4.addresses$VIP/32 nmcli connection up${con_name}fi# 关闭 LB$ipv-CechoOK;;*)echoUsage:$0start|stopexit1;;esacLVS 实践2简化版NAT 模式网络拓扑10.1.8.11 web1.shizhan.cloud web1 10.1.8.12 web2.shizhan.cloud web2 10.1.8.13 web3.shizhan.cloud web3 10.1.8.100 lb.shizhan.cloud lb web.shizhan.cloud 10.1.1.100 lb.shizhan.cloud lb web.shizhan.cloud 10.1.1.10 client.shizhan.cloud client主机名IP地址服务器角色client.shizhan.cloud10.1.1.10客户端controller.shizhan.cloud10.1.8.10控制服务器可选lb.shizhan.cloud10.1.1.100, 10.1.8.100LVS 服务器web1.shizhan.cloud10.1.8.11Web 服务器web2.shizhan.cloud10.1.8.12Web 服务器web3.shizhan.cloud10.1.8.13Web 服务器web1-3 网关10.1.8.100client的网关10.1.1.100基础配置主机名IP 地址网关# LB 添加网卡配置如下[rootlb haproxy13:49:47]# nmcli connection modify Wired\ connection\ 1 con-name ens33 ipv4.method manual ipv4.addresses 10.1.1.100/24[rootlb haproxy13:51:11]# nmcli connectionNAME UUID TYPE DEVICE ens33 a604d951-59ae-3c4a-a644-a84fcf203502 ethernet ens33 ens32 f38eb3ba-fcd7-4dc1-b608-22a904d925a9 ethernet ens32[rootlb haproxy13:51:16]# nmcli connection up ens33Connection successfully activated(D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)[rootlb haproxy13:51:27]# ip -br alo UNKNOWN127.0.0.1/8 ::1/128 ens32 UP10.1.8.100/24 fe80::20c:29ff:fea4:cd84/64 ens33 UP10.1.1.100/24 fe80::a9f7:8179:73a1:82f/64# 设置防火墙[rootlb haproxy13:51:35]# systemctl start firewalld.service[rootlb haproxy13:52:10]# firewall-cmd --set-default-zonetrustedsuccess[rootlb haproxy13:52:38]# firewall-cmd --add-masqueradesuccess# 开启路由[rootlb ~13:54:14]# sysctl -a|grep ip_forsysctl: reading keynet.ipv6.conf.all.stable_secretnet.ipv4.ip_forward1。。。。。。[rootlb ~13:53:50]# sysctl -w net.ipv4.ip_forward1net.ipv4.ip_forward1[rootlb ~13:53:53]# sysctl net.ipv4.ip_forwardnet.ipv4.ip_forward1# 设置web节点网关[rootweb1-3 ~13:40:45]# nmcli connection modify ens32 ipv4.gateway 10.1.8.100[rootweb1-3 ~13:55:19]# nmcli connection up ens32# 设置client节点网络模式为vmnet1并设置网络[rootclient ~13:58:58]# nmcli connection modify ens32 ipv4.addresses 10.1.1.10/24 ipv4.gateway 10.1.1.100[rootclient ~13:58:58]# nmcli connection up ens32# 测试网络连通性[rootclient ~13:58:58]# ping 1.1.1.1[rootweb3 ~13:56:35]# ping -c 1 1.1.1.1配置 web注意所有web都要执行以下命令。[rootweb1-3 ~]## 部署 web# 使用前一个实验的HAProxy 的web页面# 访问后端 http[rootclient ~14:26:54]# curl http://10.1.8.11Welcome to shizhan.Web1 WebSite![rootclient ~14:39:50]# curl http://10.1.8.12Welcome to shizhan.Web2 WebSite![rootclient ~14:39:52]# curl http://10.1.8.13Welcome to shizhan.Web3 WebSite!配置 LVS# 配置LVS# 安装 ipvsadm[rootlb ~14:18:57]# yum install -y ipvsadm# ipvsadm 服务启动的时候从该文件中读取ipvs规则[rootlb ~14:18:57]# touch /etc/sysconfig/ipvsadm[rootlb ~14:19:09]# systemctl enable ipvsadm --now# 创建轮询负载## 增加一个tcp模式虚拟IP调度模式轮询[rootlb ~14:21:55]# ipvsadm -A -t 10.1.1.100:80 -s rr# 未虚拟IP增加后端真实主机模式masqueradeNAT[rootlb ~14:23:09]# ipvsadm -a -t 10.1.1.100:80 -r 10.1.8.11:80 -m[rootlb ~14:23:42]# ipvsadm -a -t 10.1.1.100:80 -r 10.1.8.12:80 -m[rootlb ~14:23:47]# ipvsadm -a -t 10.1.1.100:80 -r 10.1.8.13:80 -m# 查看规则[rootlb ~14:25:30]# ipvsadm -L -nIP Virtual Server version1.2.1(size4096)Prot LocalAddress:Port Scheduler Flags -RemoteAddress:Port Forward Weight ActiveConn InActConn TCP10.1.1.100:80 rr -10.1.8.11:80 Masq100-10.1.8.12:80 Masq100-10.1.8.13:80 Masq101# 保存转发规则到文件中ipvsadm-save -n/etc/sysconfig/ipvsadm访问测试# 访问测试[rootclient ~14:29:00]# for i in {1..90};do curl -s 10.1.1.100 ;done|sort|uniq -c30Welcome to web1 WebSite!30Welcome to web2 WebSite!30Welcome to web3 WebSite!DR 模式网络拓扑主机名IP地址服务器角色controller.shizhan.cloud10.1.8.20控制服务器可选lb.shizhan.cloud10.1.8.10LVS 服务器web1.shizhan.cloud10.1.8.11Web 服务器web2.shizhan.cloud10.1.8.12Web 服务器web3.shizhan.cloud10.1.8.13Web 服务器基础配置主机名IP 地址网关nmcli connection modify ens32 ipv4.gateway10.1.8.2;nmcli connection up ens32# 配置后端web 虚拟IP和内核参数[rootweb1-3 ~]## 增加虚拟网卡子网掩码一定要设置为 32 位[rootweb1-3 ~]# nmcli connection add type dummy ifname dummy con-name dummy ipv4.method manual ipv4.addresses 10.1.8.100/32[rootweb1-3 ~]# nmcli connection up dummy# 配置 arp 参数关闭arp对dummy网卡的解析[rootweb1-3 ~]# cat /etc/sysctl.conf EOFnet.ipv4.conf.all.arp_ignore1net.ipv4.conf.all.arp_announce2net.ipv4.conf.dummy.arp_ignore1net.ipv4.conf.dummy.arp_announce2EOF sysctl -p配置 LVS# 配置LVS 虚拟IP[rootlb ~15:13:36]# nmcli connection add type dummy ifname dummy con-name dummy ipv4.method manual ipv4.addresses 10.1.8.100/32[rootlb ~15:13:36]# nmcli connection up dummy[rootlb ~15:13:36]# # 创建轮询负载[rootlb ~15:15:41]# ipvsadm -A -t 10.1.8.100:80 -s rr[rootlb ~15:15:41]# ipvsadm -a -t 10.1.8.100:80 -r 10.1.8.11:80[rootlb ~15:15:41]# ipvsadm -a -t 10.1.8.100:80 -r 10.1.8.12:80[rootlb ~15:15:41]# ipvsadm -a -t 10.1.8.100:80 -r 10.1.8.13:80[rootlb ~15:15:41]# ipvsadm-save -n /etc/sysconfig/ipvsadm[rootlb ~15:15:42]# ipvsadm -LnIP Virtual Server version1.2.1(size4096)Prot LocalAddress:Port Scheduler Flags -RemoteAddress:Port Forward Weight ActiveConn InActConn TCP10.1.8.100:80 rr -10.1.8.11:80 Route100-10.1.8.12:80 Route100-10.1.8.13:80 Route100访问测试[rootcontroller ~15:13:24]# for i in {1..90};do curl -s 10.1.8.100 ;done|sort|uniq -c30Welcome to web1 WebSite!30Welcome to web2 WebSite!30Welcome to web3 WebSite!
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

怎样用flash做网站什么后台做网站安全

第一章:智谱Open-AutoGLM开源地址智谱AI推出的Open-AutoGLM是一个面向自动化文本生成任务的开源框架,旨在降低大模型应用开发门槛,支持自然语言理解、代码生成、多步推理等多种场景。该项目已在GitHub平台正式开源,开发者可通过公…

张小明 2025/12/31 19:55:02 网站建设

做标签网站邀请码手机网站设计公司只选亿企邦

Apache Pulsar消息积压实战:从问题诊断到自动化扩缩容的完整解决方案 【免费下载链接】pulsar Apache Pulsar - distributed pub-sub messaging system 项目地址: https://gitcode.com/gh_mirrors/pulsar28/pulsar 在分布式消息系统的实际应用中,…

张小明 2025/12/28 19:27:37 网站建设

网站的注册网页代码用什么软件

Linux系统管理与操作实用指南 1. 利用ImageMagick进行截图 在Linux系统中,我们可以借助ImageMagick工具套件中的 import 命令来进行截图操作。首先,需要使用包管理器安装ImageMagick。以下是具体的截图方式: 1. 截取整个屏幕 : $ import -window root screenshot.…

张小明 2025/12/29 10:22:56 网站建设

郑州做网站 哪家好网页设计意图怎么写

博主介绍 💗博主介绍:✌全栈领域优质创作者,专注于Java、小程序、Python技术领域和计算机毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 2025-2026年最新1000个热门Java毕业设计选题…

张小明 2026/1/6 2:19:51 网站建设

jsp购物网站开发 论文wordpress文件详情

还在为海量PDF文献的引用信息整理而头疼吗?Zotero Reference插件让学术文献管理变得前所未有的简单。这款专为Zotero设计的智能工具能够自动识别和提取PDF中的参考文献,为你的研究之路节省宝贵时间。 【免费下载链接】zotero-reference PDF references a…

张小明 2025/12/28 18:42:18 网站建设

哪个网站做视频收益高ps网站设计全程绝密

Hadoop生态下的数据预处理:从理论到MapReduce实战的完整指南 一、引言:为什么数据预处理是大数据分析的“地基”? 你是否遇到过这样的场景? 拿到一份TB级的电商用户行为日志,却发现里面混着缺失关键字段的记录(比如没有用户ID)、格式混乱的时间戳(比如1620000000000)…

张小明 2026/1/10 14:13:57 网站建设