.net开发的网站能做优化吗企业网站建设立项请示

张小明 2026/1/19 20:27:23
.net开发的网站能做优化吗,企业网站建设立项请示,有赞商城小程序入口,深建工程建设集团第一部分#xff1a;LVS 一、概念 Director Server: 调度服务器 -- 将负载分发到Real Server的服务器 Real Server: 后端真实服务器 -- 真正提供应用服务的服务器 VIP: 虚拟IP地址 --公布给用户访问的虚拟IP地址 RIP#xff1a;真实IP地址 --集群节点上使用的IP地址…第一部分LVS一、概念Director Server: 调度服务器-- 将负载分发到Real Server的服务器Real Server: 后端真实服务器-- 真正提供应用服务的服务器VIP: 虚拟IP地址--公布给用户访问的虚拟IP地址RIP真实IP地址--集群节点上使用的IP地址DIP:调度器连接节点服务器的IP地址-- 假如后端服务器DS地址为2.100调度器需要一个IP连接Real Server,这个IP就是DIP‍Director Server【调度服务器】 VIP(192.168.4.5) 为用户提供访问 DIP(192.168.2.5) Real Server【真实服务器】web RIP(192.168.2.100, 192.168.2.200)‍二、LVS工作模式1.NAT模式用户访问Internet上的LVS服务器LVS将公网地址转换为私有IP转web1232.DR模式用户访问调度器调度器转web1,2,3web1,2,3直接返回数据给用户3.TUN模式用的不多LVS和web123不在一个区域‍三、LVS调度算法轮询 rr加权轮询 wrr最少连接 lc加权最少连接 wlc源地址散列 sh目标地址散列 dh‍四、ipvsadm命令选项命令选项含义ipvsadm -A添加虚拟服务器ipvsadm -E修改虚拟服务器ipvsadm -D删除虚拟服务器ipvsadm -C清空所有ipvsadm -a添加真实服务器ipvsadm -e修改真实服务器ipvsadm -d删除真实服务器ipvsadm -L查看lvs规则-s [rr|wrr|lc|wlc|sh]指定集群算法ipvsadm -A -t|u 192.168.4.5:80 -s [算法]添加虚拟服务器协议为tcp(-t)或者udp(-u)ipvsadm -E -t|u 192.168.4.5:80 -s [算法]修改虚拟服务器协议为tcp(-t)或者udp(-uipvsadm -D -t|u 192.168.4.5:80 -s [算法]删除虚拟服务器协议为tcp(-t)或者udp(-uipvsadm -C清空所有ipvsadm -a -t|u 192.168.4.5:80 -r 192.168.2.100 [-g|i|m] -w [权重]添加真实服务器 -g(DR模式) -i(隧道模式) -m(NAT模式)ipvsadm -e -t|u 192.168.4.5:80 -r 192.168.2.100 [-g|i|m] -w [权重]修改真实服务器ipvsadm -d -t|u 192.168.4.5:80 -r 192.168.2.100删除真实服务器ipvsadm -Ln查看lvs规则列表‍五、LVS常用命令1、创建LVS虚拟服务器集群算法为加群轮询:wrr[rootlocalhost ~]# ipvsadm -A -t 192.168.4.5:80 -s wrr [rootlocalhost ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.4.5:80 wrr2、为集群添加若干real server[rootlocalhost ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200 -w 1 [rootlocalhost ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.4.5:80 wrr - 192.168.2.200:80 Route 1 0 0再添加一台real server web 服务器[rootlocalhost ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100 -w 1 [rootlocalhost ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.4.5:80 wrr - 192.168.2.100:80 Route 1 0 0 - 192.168.2.200:80 Route 1 0 03、修改LVS的工作模式默认为-g DR模式-g为DR模式-m为NAT模式 Masq-i 为Tunnel模式 Tunnel[rootlocalhost ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.201 -w 2 -m [rootlocalhost ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.202 -w 2 -m [rootlocalhost ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.203 -w 2 -i [rootlocalhost ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.204 -w 5 -i [rootlocalhost ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.4.5:80 wrr - 192.168.2.100:80 Route 1 0 0 - 192.168.2.200:80 Route 1 0 0 - 192.168.2.201:80 Masq 2 0 0 - 192.168.2.202:80 Masq 2 0 0 - 192.168.2.203:80 Tunnel 2 0 0 - 192.168.2.204:80 Tunnel 5 0 04、修改LVS的工作模式和调度算法权重以及删除虚拟服务器和真实服务器的基本操作[rootlocalhost ~]# ipvsadm -E -t 192.168.4.5:80 -s lc [rootlocalhost ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.4.5:80 lc - 192.168.2.100:80 Route 1 0 0 - 192.168.2.200:80 Route 1 0 0 - 192.168.2.201:80 Masq 2 0 0 - 192.168.2.202:80 Masq 2 0 0 - 192.168.2.203:80 Tunnel 2 0 0 - 192.168.2.204:80 Tunnel 5 0 0 [rootlocalhost ~]# ipvsadm -e -t 192.168.4.5:80 -r 192.168.2.100 -m -w 2 [rootlocalhost ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.4.5:80 lc - 192.168.2.100:80 Masq 2 0 0 - 192.168.2.200:80 Route 1 0 0 - 192.168.2.201:80 Masq 2 0 0 - 192.168.2.202:80 Masq 2 0 0 - 192.168.2.203:80 Tunnel 2 0 0 - 192.168.2.204:80 Tunnel 5 0 0 [rootlocalhost ~]# ipvsadm -d -t 192.168.4.5:80 -r 192.168.2.100 [rootlocalhost ~]# ipvsadm -d -t 192.168.4.5:80 -r 192.168.2.200 [rootlocalhost ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.4.5:80 lc - 192.168.2.201:80 Masq 2 0 0 - 192.168.2.202:80 Masq 2 0 0 - 192.168.2.203:80 Tunnel 2 0 0 - 192.168.2.204:80 Tunnel 5 0 0 [rootlocalhost ~]# ipvsadm -D You need to supply the service-address option for the delete-service command [rootlocalhost ~]# ipvsadm -D -t 192.168.4.5:80 [rootlocalhost ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port Forward Weight ActiveConn InActConn注意如果你的算法是轮询rr即使你给服务器加权重也是无效的你想用权重你的算法必须是wrr或wlc否则你加了权重也是无效的5、永久保存所有规则[rootlocalhost ~]# ipvsadm-save -n /etc/sysconfig/ipvsadm-config6、清空所有规则[rootlocalhost ~]# ipvsadm -C‍六、案例1部署LVS-NAT集群1、问题使用LVS实现NAT模式的集群调度服务器为用户提供Web服务集群对外公网ip地址为192.168.4.5调度器内网ip地址为192.168.2.5真实web服务器地址分别为192.168.2.100192.168.2.200使用加权轮询调度算法真实服务器权重分别为1和22、方案实验拓扑主机配置细节如下表所示主机名IP地址clienteht0:192.168.4.10/24proxyeht0:192.168.4.5/24 eht1:192.168.2.5/24web1eht0:192.168.2.100/24 网关192.168.2.5web2eht0:192.168.2.200/24 网关192.168.2.5使用4台虚拟机1台作为Director调度器2台作为Real Server1台客户端拓扑结构如下图所示注意web1和web2必须配置网关地址lvs服务器ip_forwad必须打开ip_forward1proc/sys/net/ipv4/ip_forward3.步骤实现此案例需要按照如下步骤进行。步骤一配置基础环境1设置web服务器已web1为例[rootweb1~]# yum install httpd [rootweb1~]# echo 192.168.2.100 /var/www/html/index.html2启动web服务器软件[rootweb1~]# systemctl restart httpd3关闭防火墙和SELinux[rootweb1~]# systemctl stop firewalled [rootweb1~]# setenforce 0步骤二部署LVS-NAT模式调度器1确认调度器的路由转发功能如果开启可以忽略[rootproxy ~]# echo 1 /proc/sys/net/ipv4/ip_forward #此文件无法使用vim修改只能使用重定向修改临时生效 [rootproxy ~]# cat /proc/sys/net/ipv4/ip_forward 1 [rootproxy ~]# echo net.ipv4.ip_forward1 /etc/sysctl.conf #修改配置文件设置永久生效2创建集群服务器[rootproxy ~]# yum install -y ipvsadm [rootproxy ~]# ipvsadm -A -t192.168.4.5:80 -s wrr3添加真实服务器[rootproxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100 -w 1 -m [rootproxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200 -w 1 -m4查看规则列表并保持规则[rootproxy ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.4.5:80 wrr - 192.168.2.100:80 Masq 1 0 0 - 192.168.2.200:80 Masq 1 0 0 [rootproxy ~]# ipvsadm-save -n /etc/sysconfig/ipvsadm-config [rootproxy ~]# cat /etc/sysconfig/ipvsadm-config -A -t 192.168.4.5:80 -s wrr -a -t 192.168.4.5:80 -r 192.168.2.100:80 -m -w 1 -a -t 192.168.4.5:80 -r 192.168.2.200:80 -m -w 1步骤三客户端测试客户端使用curl命令反复连接http://192.168.4.5,查看访问的页面是否会轮询到不同的后端真实服务器‍七、案例2部署LVS-DR集群1.问题使用LVS实现DR模式的集群调度器为用户提供WEB服务客户端IP地址为192.168.4.10LVS调度器VIP地址为192.168.4.15LVS调度器DIP地址设置为192.168.4.5真实WEB服务器地址分别为192.168.4.100、192.168.4.200使用加权轮询调度算法WEB1的权重为1WEB2的权重为2说明CIP是客户端的IP地址VIP是为客户端提供服务的IP地址RIP是后端服务器的真实IP地址DIP是调度器与后端真实服务器通信的IP地址VIP必须配置在虚拟接口。2.方案使用4台虚拟机1台作为客户端、1台作为调度器、2台作为Real server拓扑结构如下图所示。实验拓扑结构主机细节如下表所示。主机名网络配置clienteth0192.168.4.10/24proxyeht0(192.168.4.5/24) eth0:0(192.168.4.15/24)WEB1eth0(192.168.4.100/24) lo:0(192.168.4.15/32)注意子网掩码必须是32WEB1eth0(192.168.4.200/24) lo:0(192.168.4.15/32)注意子网掩码必须是323.步骤实现此案例需要按照如下步骤进行。说明CIP是客户端的IP地址VIP是为客户端提供服务的IP地址RIP是后端服务器的真实IP地址DIP是调度器与后端真实服务器通信的IP地址VIP必须配置在虚拟接口。步骤一配置实验网络环境1设置proxy代理服务器的VIP和DIP注意为了防止冲突VIP必须要配置在网卡的虚拟接口[rootproxy ~]# cd /etc/sysconfig/network-scripts/ [rootproxy network-scripts]# cp ifcfg-eth0{,:0} [rootproxy network-scripts]# vim ifcfg-eth0 TYPEEthernet BOOTPROTOnone NAMEeth0 DEVICEeth0 ONBOOTyes IPADDR192.168.4.5 PREFIX24 [rootproxy network-scripts]# vim ifcfg-eth0:0 TYPEEthernet BOOTPROTOnone NAMEeth0:0 DEVICEeth0:0 ONBOOTyes IPADDR192.168.4.15 PREFIX24 [rootproxy network-scripts]# systemctl restart network‍2设置WEB1服务器网络参数修改IP地址为192.168.4.100[rootproxy network-scripts]# vim ifcfg-eth0:0 TYPEEthernet BOOTPROTOnone NAMEeth0 DEVICEeth0 ONBOOTyes IPADDR192.168.4.100 PREFIX24接下来给WEB1配置VIP地址。注意这里的子网掩码必须是32也就是全255网络地址与IP地址一样广播地址与IP地址也一样。[rootweb1 ~]# cd /etc/sysconfig/network-scripts/ [rootweb1 network-scripts]# cp ifcfg-lo{,:0} [rootweb1 network-scripts]# vim ifcfg-lo:0 TYPElo:0 IPADDR192.168.4.15 NETMASK255.255.255.255 NETWORK192.168.4.15 BROADCAST192.168.4.15 ONBOOTyes NAMElo:0防止地址冲突问题这里因为WEB1也配置与代理一样的VIP地址默认肯定会出现地址冲突sysctl.conf文件写入这下面四行的主要目的就是访问192.168.4.15的数据包只有调度器会响应其他主机都不做任何响应这里防止地址冲突问题。[rootweb1 ~]# vim /etc/sysctl.conf #手动写入如下4行内容 [rootweb1 ~]# net.ipv4.conf.all.arp_ignore 1 [rootweb1 ~]# net.ipv4.conf.lo.arp_ignore 1 [rootweb1 ~]# net.ipv4.conf.lo.arp_announce 2 [rootweb1 ~]# net.ipv4.conf.all.arp_announce 2 #当有arp广播问谁是192.168.4.15时本机忽略该广播不回应 #本机不要向外宣告自己的lo回环地址是192.168.4.15 [rootweb1 ~]# sysctl -p重启网络服务设置防火墙与SELinux[rootweb1 ~]# systemctl restart network [rootweb1 ~]# ifconfig [rootweb1 ~]# systemctl stop firewalld [rootweb1 ~]# setenforce 0‍3设置WEB2服务器网络参数[rootproxy network-scripts]# vim ifcfg-eth0:0 TYPEEthernet BOOTPROTOnone NAMEeth0 DEVICEeth0 ONBOOTyes IPADDR192.168.4.200 PREFIX24接下来给WEB2配置VIP地址。注意这里的子网掩码必须是32也就是全255网络地址与IP地址一样广播地址与IP地址也一样。[rootweb2 ~]# cd /etc/sysconfig/network-scripts/ [rootweb2 network-scripts]# cp ifcfg-lo{,:0} [rootweb2 network-scripts]# vim ifcfg-lo:0 TYPElo:0 IPADDR192.168.4.15 NETMASK255.255.255.255 NETWORK192.168.4.15 BROADCAST192.168.4.15 ONBOOTyes NAMElo:0防止地址冲突问题这里因为WEB2也配置与代理一样的VIP地址默认肯定会出现地址冲突sysctl.conf文件写入这下面四行的主要目的就是访问192.168.4.15的数据包只有调度器会响应其他主机都不做任何响应这里防止地址冲突问题。[rootweb2 ~]# vim /etc/sysctl.conf #手动写入如下4行内容 [rootweb2 ~]# net.ipv4.conf.all.arp_ignore 1 [rootweb2 ~]# net.ipv4.conf.lo.arp_ignore 1 [rootweb2 ~]# net.ipv4.conf.lo.arp_announce 2 [rootweb2 ~]# net.ipv4.conf.all.arp_announce 2 #当有arp广播问谁是192.168.4.15时本机忽略该广播不回应 #本机不要向外宣告自己的lo回环地址是192.168.4.15 [rootweb2 ~]# sysctl -p重启网络服务设置防火墙与SELinux[rootweb2 ~]# systemctl restart network [rootweb2 ~]# ifconfig [rootweb2 ~]# systemctl stop firewalld [rootweb2 ~]# setenforce 0步骤二proxy调度器安装软件并部署LVS-DR模式调度器1安装软件如果已经安装此步骤可以忽略[rootproxy ~]# yum -y install ipvsadm2清理之前实验的规则创建新的集群服务器规则[rootproxy ~]# ipvsadm -C #清空所有规则 [rootproxy ~]# ipvsadm -A -t 192.168.4.15:80 -s wrr3添加真实服务器-g参数设置LVS工作模式为DR模式-w设置权重[rootproxy ~]# ipvsadm -a -t 192.168.4.15:80 -r 192.168.4.100 -g -w 1 [rootproxy ~]# ipvsadm -a -t 192.168.4.15:80 -r 192.168.4.200 -g -w 14查看规则列表并保存规则[rootproxy ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.4.15:80 wrr - 192.168.4.100:80 Route 1 0 0 - 192.168.4.200:80 Route 1 0 0 [rootproxy ~]# ipvsadm-save /etc/sysconfig/ipvsadm-config步骤三客户端测试客户端使用curl命令反复连接http://192.168.4.15查看访问的页面是否会轮询到不同的后端真实服务器。扩展知识默认LVS不带监控检查功能需要自己手动编写动态经检测脚本实现该功能参考脚本如下仅供参考[rootproxy ~]# vim check.sh #!/bin/bash VIP192.168.4.15:80 RIP1192.168.4.100 RIP2192.168.4.200 while: do for IP in $RIP1 $RIP2 do curl -s http://$IP /dev/vnull if [ $? -eq 0 ];then ipvsadm -Ln | grep -q $IP || ipvsadm -a -t $VIP -r $IP else ipvsadm -Ln | grep -q $IP ipvsadm -d -t $VIP -r $IP fi done sleep 1 done‍第二部分Keepalived和HAProxyKeepalived主要功能自动配置LVS规则健康检查VRRP1.案例1Keepalived高可用服务器1.1问题准备三台Linux服务器两台作为web服务器部署Keepalived高可用软件一台作为客户端主机实现如下功能使用Keepalived实现Web服务器的高可用Web服务器IP地址分别为192.168.4.100、192.168.4.200Web服务器的浮动VIP地址为192.168.4.80客户端通过访问VIP地址访问Web页面1.2方案使用3台虚拟机2台作为web服务器并部署Keepalived1台作为客户端拓扑结构如下图所示主机配置如下表所示。主机名网络配置proxy(扮演客户端的角色)eth0:192.168.4.5web1eth0:192.168.4.100 VIP:192.168.4.80(Keepalived会自动配置)web2eth0:192.168.4.200 VIP:192.168.4.80(Keepalived会自动配置)1.3步骤实现此案例需要按照如下步骤进行。步骤一配置网络环境如果在前的案例已经完成改配置可以忽略1设置Web1服务器网络参数配置web服务[rootweb1 ~]# vim /etc/sysconfig/network-script/ifcfg-eth0 TYPEEthernet BOOTPROTOnone NAMEeth0 DEVICEeth0 ONBOOTyes IPADDR192.168.4.100 PREFIX24 [rootweb1 ~]# yum -y install httpd [rootweb1 ~]# echo 192.168.4.100 /var/www/html/index.html [rootweb1 ~]# systemctl restart httpd2设置Web2服务器网络参数配置web服务[rootweb2 ~]# vim /etc/sysconfig/network-script/ifcfg-eth0 TYPEEthernet BOOTPROTOnone NAMEeth0 DEVICEeth0 ONBOOTyes IPADDR192.168.4.200 PREFIX24 [rootweb2 ~]# yum -y install httpd [rootweb2 ~]# echo 192.168.4.200 /var/www/html/index.html [rootweb2 ~]# systemctl restart httpd3配置proxy主机的网络参数如果已经设置可以忽略此步骤[rootproxy ~]# vim /etc/sysconfig/network-script/ifcfg-eth0 TYPEEthernet BOOTPROTOnone NAMEeth0 DEVICEeth0 ONBOOTyes IPADDR192.168.4.5步骤二安装Keepalived软件注意两台web服务器做相同的操作[rootweb1 ~]# yum install -y keepalived [rootweb2 ~]# yum install -y keepalived步骤三部署Keepalived服务1修改web1服务器Keepalived配置文件[rootweb1 ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { //设置收件人邮箱 acassenfirewall.loc failoverfirewall.loc sysadminfirewall.loc } notification_email_from Alexandre.Cassenfirewall.loc //设置发件人 smtp_server 127.0.0.1 //定义邮件服务器 smtp_connect_timeout 30 router_id web1 //设置路由ID号实验需要修改 } vrrp_instance VI_1 { state MASTER //主服务器为MASTER备服务器需要修改为BACKUP interface eth0 //定义网络接口 virtual_router_id 51 //主备服务器VRIP号必须一致 priority 100 //服务器优先级优先级高优先获取VIP advert_int 1 authentication { auth_type PASS auth_pass 1111 //主备服务器密码必须一致 } virtual_ipaddress { //谁是主服务器谁配置VIP使用需要修改 192.168.4.80 } }2修改web2服务器Keepalived配置文件[rootweb2 ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { //设置收件人邮箱 acassenfirewall.loc failoverfirewall.loc sysadminfirewall.loc } notification_email_from Alexandre.Cassenfirewall.loc //设置发件人 smtp_server 127.0.0.1 //定义邮件服务器 smtp_connect_timeout 30 router_id web2 //设置路由ID号实验需要修改 } vrrp_instance VI_1 { state BACKUP //主服务器为BACKUP实验需要修改 interface eth0 //定义网络接口 virtual_router_id 51 //主备服务器VRIP号必须一致 priority 50 //服务器优先级优先级高优先获取VIP实验需要修改 advert_int 1 authentication { auth_type PASS auth_pass 1111 //主备服务器密码必须一致 } virtual_ipaddress { //谁是主服务器谁配置VIP使用需要修改 192.168.4.80 } }3启动服务#注意每次启动Keepalived都会重新生成防火墙规则所以需要再第四步先清空防火墙规则 [rootweb1 ~]# systemctl start keepalived [rootweb2 ~]# systemctl start keepalived4配置防火墙和SELinux[rootweb1 ~]# iptables -F [rootweb1 ~]# setenforce 0 [rootweb2 ~]# iptables -F [rootweb2 ~]# setenforce 0步骤4测试1登录两台Web服务器查看VIP信息[rootweb1 ~]# ip addr show eth0 [rootweb2 ~]# ip addr show eth02客户端使用curl命令连接http://192.168.4.80查看Web页面关闭Web1页面服务器的网卡客户端再次访问http://192.168.4.80验证是否可以正常访问服务。2.案例2KeepalivedLVS服务器DR模式2.1 问题使用Keepalived为LVS调度器提供高可用功能防止调度器单点故障为用户提供Web服务LVS1调度器真实IP地址为192.168.4.5LVS2调度器真实IP地址为192.168.4.6服务器VIP地址设置为192.168.4.15真实Web服务器地址分别为192.168.4.100、192.168.4.200使用加权轮询调度算法真实Web服务器权重不同2.2方案使用5台虚拟机1台作为客户端主机2台作为LVS调度器2台作为Real Server实验拓扑环境结构如下图所示基础环境配置如下表所示。主机名网络配置clienteth0:192168.4.10/24proxy1eth0:192168.4.5/24proxy2eth0:192168.4.6/24web1eth0:192168.4.100/24web2eth0:192168.4.200/24注意所有主机都需要配置IP地址与有效的YUM源。2.3 步骤实现此案例需要按照如下步骤进行。步骤一配置网络环境1设置Web1服务器的网络参数[rootweb1 ~]# vim /etc/sysconfig/network-script/ifcfg-eth0 TYPEEthernet BOOTPROTOnone NAMEeth0 DEVICEeth0 ONBOOTyes IPADDR192.168.4.100接下来给Web1配置VIP地址注意这里的子网掩码必须是32也就是全255网络地址与IP地址一样广播地址与IP地址也一样。[rootweb1 ~]# cd /etc/sysconfig/network-scripts/ [rootweb1 network-scripts]# cp ifcfg-lo{,:0} [rootweb1 network-scripts]# vim ifcfg-lo:0 TYPElo:0 IPADDR192.168.4.15 NETMASK255.255.255.255 NETWORK192.168.4.15 BROADCAST192.168.4.15 ONBOOTyes NAMElo:0防止地址冲突问题注意这里因为Web1也配置与调度器一样的VIP地址默认肯定会出现地址冲突sysctl.conf文件写入这下面四行的主要目的就是访问192.168.4.15的数据包只有调度器会响应其他主机都不做任何响应这里防止地址冲突问题。[rootweb1 ~]# vim /etc/sysctl.conf #手动写入如下4行内容 [rootweb1 ~]# net.ipv4.conf.all.arp_ignore 1 [rootweb1 ~]# net.ipv4.conf.lo.arp_ignore 1 [rootweb1 ~]# net.ipv4.conf.lo.arp_announce 2 [rootweb1 ~]# net.ipv4.conf.all.arp_announce 2 #当有arp广播问谁是192.168.4.15时本机忽略该广播不做任何回应 #本机不要向外宣告自己的lo回环地址是192.168.4.15 [rootweb1 ~]# sysctl -p重启网络服务设置防火墙与SELinux[rootweb1 ~]# systemctl stop NetworkManager #非必须 [rootweb1 ~]# systemctl disable NetworkManager #非必须 [rootweb1 ~]# systemctl restart network [rootweb1 ~]# ifconfig [rootweb1 ~]# systemctl stop firewalld [rootweb1 ~]# setenforce 02设置Web2服务器的网络参数[rootweb2 ~]# vim /etc/sysconfig/network-script/ifcfg-eth0 TYPEEthernet BOOTPROTOnone NAMEeth0 DEVICEeth0 ONBOOTyes IPADDR192.168.4.200接下来给Web2配置VIP地址注意这里的子网掩码必须是32也就是全255网络地址与IP地址一样广播地址与IP地址也一样。[rootweb2 ~]# cd /etc/sysconfig/network-scripts/ [rootweb2 network-scripts]# cp ifcfg-lo{,:0} [rootweb2 network-scripts]# vim ifcfg-lo:0 TYPElo:0 IPADDR192.168.4.15 NETMASK255.255.255.255 NETWORK192.168.4.15 BROADCAST192.168.4.15 ONBOOTyes NAMElo:0防止地址冲突问题注意这里因为Web2也配置与调度器一样的VIP地址默认肯定会出现地址冲突sysctl.conf文件写入这下面四行的主要目的就是访问192.168.4.15的数据包只有调度器会响应其他主机都不做任何响应这里防止地址冲突问题。[rootweb2 ~]# vim /etc/sysctl.conf #手动写入如下4行内容 [rootweb2 ~]# net.ipv4.conf.all.arp_ignore 1 [rootweb2 ~]# net.ipv4.conf.lo.arp_ignore 1 [rootweb2 ~]# net.ipv4.conf.lo.arp_announce 2 [rootweb2 ~]# net.ipv4.conf.all.arp_announce 2 #当有arp广播问谁是192.168.4.15时本机忽略该广播不做任何回应 #本机不要向外宣告自己的lo回环地址是192.168.4.15 [rootweb2 ~]# sysctl -p重启网络服务设置防火墙与SELinux[rootweb1 ~]# systemctl stop NetworkManager #非必须 [rootweb1 ~]# systemctl disable NetworkManager #非必须 [rootweb1 ~]# systemctl restart network [rootweb1 ~]# ifconfig [rootweb1 ~]# systemctl stop firewalld [rootweb1 ~]# setenforce 03配置proxy1主机的网路参数不配置VIP由Keepalived自动配置[rootproxy1 ~]# vim /etc/sysconfig/network-script/ifcfg-eth0 TYPEEthernet BOOTPROTOnone NAMEeth0 DEVICEeth0 ONBOOTyes IPADDR192.168.4.54配置proxy2主机的网路参数不配置VIP由Keepalived自动配置注意按照前面的课程默认没有改虚拟机需要重新创建一台虚拟机proxy2。[rootproxy2 ~]# vim /etc/sysconfig/network-script/ifcfg-eth0 TYPEEthernet BOOTPROTOnone NAMEeth0 DEVICEeth0 ONBOOTyes IPADDR192.168.4.6步骤二配置后端web服务1安装软件自定义Web页面web1和web2主机[rootweb1 ~]# yum -y install httpd [rootweb1 ~]# echo 192.168.4.100 /var/www/html/index.html [rootweb2 ~]# yum -y install httpd [rootweb2 ~]# echo 192.168.4.200 /var/www/html/index.html2启动web服务器软件web1和web2[rootweb1 ~]# systemctl start httpd [rootweb1 ~]# systemctl enable httpd [rootweb2 ~]# systemctl start httpd [rootweb2 ~]# systemctl enable httpd步骤三调度器安装Keepalived和ipvsadm软件注意两台LVS调度器zhixingji相同的操作如果已经安装软件可以忽略此步骤。安装软件[rootproxy1 ~]# yum install -y keepalived [rootproxy1 ~]# systmctl enable keepalived [rootproxy1 ~]# yum install -y ipvsadm [rootproxy1 ~]# ipvsadm -C [rootproxy2 ~]# yum install -y keepalived [rootproxy2 ~]# systmctl enable keepalived [rootproxy2 ~]# yum install -y ipvsadm [rootproxy2 ~]# ipvsadm -C步骤四部署Keepalived实现LVS-DR模式调度器的高可用1LVS1调度器设置Keepalived并启动服务注意Keepalived健康检查的三种方式TCP_CHECK #检查tcp端口是否存在HTTP_GET #检查http的md5值SSL_GET #检查ssl加密的md5值[rootproxy1 ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { //设置收件人邮箱 acassenfirewall.loc failoverfirewall.loc sysadminfirewall.loc } notification_email_from Alexandre.Cassenfirewall.loc //设置发件人 smtp_server 127.0.0.1 //定义邮件服务器 smtp_connect_timeout 30 router_id lvs1 //设置路由ID号实验需要修改 } vrrp_instance VI_1 { state MASTER //主服务器为MASTER备服务器需要修改为BACKUP interface eth0 //定义网络接口 virtual_router_id 51 //主备服务器VRIP号必须一致 priority 100 //服务器优先级优先级高优先获取VIP advert_int 1 authentication { auth_type PASS auth_pass 1111 //主备服务器密码必须一致 } virtual_ipaddress { //谁是主服务器谁配置VIP使用需要修改 192.168.4.15 } } virtual_server 192.168.4.15 80 { //设置ipvsadm的规则实验需要修改 delay_loop 6 lb_algo wrr //设置LVS调度算法为WRR lb_kind DR //设置LVS的模式为DR #persistence_timeout 50 #注意这样的作用是保持连接开启后客户端在一定时间内始终访问相同的服务器 protocol TCP real_server 192.168.4.100 80 { //设置后端web服务器真实IP实验需要修改 weight 1 //设置权重为1 TCP_CHECK { //对后台real_server的健康检查 connect_timeout 3 //超时3s也认为机器坏了 retry 3 //尝试3次 delay_before_retry 3 //每隔3s做一次健康检查 } } real_server 192.168.4.200 80 { //设置后端web服务器真实IP实验需要修改 weight 2 //设置权重为2 TCP_CHECK { //对后台real_server的健康检查 connect_timeout 3 //超时3s也认为机器坏了 retry 3 //尝试3次 delay_before_retry 3 //每隔3s做一次健康检查 } } } [rootproxy1 ~]# systemctl start keepalived [rootproxy1 ~]# ipvsadm -Ln #查看LVS规则 IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.4.15:80 wrr - 192.168.4.100:80 Route 1 0 0 - 192.168.4.200:80 Route 1 0 0 [rootproxy1 ~]# ip addr show #查看VIP配置 ip a s2LVS2调度器设置Keepalived[rootproxy2 ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { //设置收件人邮箱 acassenfirewall.loc failoverfirewall.loc sysadminfirewall.loc } notification_email_from Alexandre.Cassenfirewall.loc //设置发件人 smtp_server 127.0.0.1 //定义邮件服务器 smtp_connect_timeout 30 router_id lvs2 //设置路由ID号实验需要修改 } vrrp_instance VI_1 { state BACKUP //主服务器为MASTER备服务器需要修改为BACKUP interface eth0 //定义网络接口 virtual_router_id 51 //主备服务器VRIP号必须一致 priority 80 //服务器优先级优先级高优先获取VIP advert_int 1 authentication { auth_type PASS auth_pass 1111 //主备服务器密码必须一致 } virtual_ipaddress { //谁是主服务器谁配置VIP使用需要修改 192.168.4.15 } } virtual_server 192.168.4.15 80 { //设置ipvsadm的规则实验需要修改 delay_loop 6 lb_algo wrr //设置LVS调度算法为WRR lb_kind DR //设置LVS的模式为DR #persistence_timeout 50 #注意这样的作用是保持连接开启后客户端在一定时间内始终访问相同的服务器 protocol TCP real_server 192.168.4.100 80 { //设置后端web服务器真实IP实验需要修改 weight 1 //设置权重为1 TCP_CHECK { //对后台real_server的健康检查 connect_timeout 3 //超时3s也认为机器坏了 retry 3 //尝试3次 delay_before_retry 3 //每隔3s做一次健康检查 } } real_server 192.168.4.200 80 { //设置后端web服务器真实IP实验需要修改 weight 2 //设置权重为2 TCP_CHECK { //对后台real_server的健康检查 connect_timeout 3 //超时3s也认为机器坏了 retry 3 //尝试3次 delay_before_retry 3 //每隔3s做一次健康检查 } } } [rootproxy2 ~]# systemctl start keepalived [rootproxy2 ~]# ipvsadm -Ln #查看LVS规则 [rootproxy2 ~]# ip addr show #查看VIP配置 ip a s步骤五客户端测试客户端使用curl命令反复连接http://192.168.4.15查看访问的页面是否会轮询到不同的后端真实服务器。3.案例3配置HAProxy负载平衡集群前言调度软件对比Nginx分析优点工作在7层可以这对http做分流策略1.9版本开支支持4层代理正则表达式必HAProxy强大安装、配置、测试简单通过日志可以解决多数问题并发量可以达到几万次Nginx还可以做Web服务器使用缺点仅支持http、https、mail协议应用面小健康检查仅通过端口无法使用url检查‍LVS分析优点负责能力强工作在4层对内存、CPU消耗低配置性低没有太多可配置性减少人为错误应用面广几乎可以为所有应用提供负载均衡缺点不支持正则表达式不能实现动静分离如果网站架构庞大LVS-DR配置比较繁琐‍HAProxy分析优点仅支持session、cookie功能可以通过url进行健康检查效率、负载均衡速度高于Nginx低于LVSHAProxy支持TCP可以对MySQL进行负载均衡调度算法丰富缺点正则弱于Nginx日志依赖于syslogd3.1问题准备4台Linux服务器两台Web服务器1台HAProxy1台客户端实现如下功能客户端访问HAProxyHAProxy分发请求到后端Real Server开启HAProxy监控页面及时查看调度器状态设置HAProxy为开机启动3.2方案使用4台虚拟机1台作为HAProxy调度器2台作为Real Server1台作为客户端拓扑如下图所示具体配置如下表所示。主机名网络配置clienteth0:192168.4.10/24proxy1eth0:192168.4.5/24 eth0:192168.2.5/24web1eth0:192168.2.100/24web2eth0:192168.2.200/243.3步骤实现此案例需要按照如下步骤进行。注意事项将前面实验VIP、LVS等实验的内容清理干净删除所有设备的VIP清空所有LVS设置关闭KeepalivedWeb1关闭多余的网卡与VIP配置本地真实IP地址。[rootweb1 ~]# vim /etc/sysconfig/network-script/ifcfg-eth0 TYPEEthernet BOOTPROTOnone NAMEeth0 DEVICEeth0 ONBOOTyes IPADDR192.168.2.100Web1关闭多余的网卡与VIP配置本地真实IP地址。[rootweb2 ~]# vim /etc/sysconfig/network-script/ifcfg-eth0 TYPEEthernet BOOTPROTOnone NAMEeth0 DEVICEeth0 ONBOOTyes IPADDR192.168.2.200proxy关闭Keepalived服务清理LVS规则。[rootproxy ~]# systmctl stop keepalived [rootproxy ~]# systmctl disable keepalived [rootproxy ~]# ipvsadm -C [rootproxy ~]# vim /etc/sysconfig/network-script/ifcfg-eth0 TYPEEthernet BOOTPROTOnone NAMEeth0 DEVICEeth0 ONBOOTyes IPADDR192.168.4.5 [rootproxy ~]# vim /etc/sysconfig/network-script/ifcfg-eth1 TYPEEthernet BOOTPROTOnone NAMEeth1 DEVICEeth1 ONBOOTyes IPADDR192.168.2.5步骤一配置后端web服务设置两台后端web服务如果已经配置完成可以忽略此步骤[rootweb1 ~]# yum -y install httpd [rootweb1 ~]# systemctl start httpd [rootweb1 ~]# echo 192.168.2.100 /var/www/html/index.html [rootweb2 ~]# yum -y install httpd [rootweb2 ~]# systemctl start httpd [rootweb2 ~]# echo 192.168.2.200 /var/www/html/index.html步骤二部署HAProxy服务器1配置网络安装软件[roothaproxy ~]# yum -y install haproxy2修改配置文件关于maxconnglobal全局设置-- maxconn 4000 //整个软件集群最大并发连接数总值不能超过4000default默认设置-- maxconn 3000 //集群默认最大并发连接数如果集群没写的话一个listen就是一个集群集群设置listen:80-- maxconn 500 //如果集群写了maxconn表示当前集群最大并发连接数不能超过500-- server web1-- server web2listen:3306-- server mysql1-- server mysql2[roothaproxy ~]# vim /etc/haproxy/haproxy.cfg global log 127.0.0.1 local2 #日志写在本机【err warning info debug】 chroot /var/lib/haproxy #工作目录 pidfile /var/run/haproxy.pid #程序pid号 maxconn 4000 #整个集群最大并发连接数量 user haproxy #使用haproxy用户起服务 group haproxy #使用haproxy组起服务 daemon #创建一个进程进入daemon运行后台 defaults mode http # 默认的模式mode {tcp|http|health} 分别为4层调度7层调度和不做调度只有健康检查 log global option httplog #日志类别http日志格式 option dontlognull #健康检查的时候不记录日志 option http-server-close #每次请求完毕后主动关闭http通道 option forwardfor except 127.0.0.0/8 #后端服务器可以用http header中获得客户端ip转发给后台 option redispatch #servid服务器挂掉后前置定向到其他健康服务器 retries 3 #3次连接失败就认为服务不可用 timeout http-request 10s timeout queue 1m timeout connect 10s #如果backend没有指定默认10s timeout client 1m #客户端连接超时 timeout server 1m #服务器连接超时 timeout http-keep-alive 10s timeout check 10s maxconn 3000 #集群默认最大并发连接数如果集群没写的话一个listen就是一个集群 #--------------------------------------------------------------------- # main frontend which proxys to the backends #--------------------------------------------------------------------- # 第一种建立集群的方式 frontend main bind *:5000 acl url_static path_beg -i /static /images /javascript /stylesheets acl url_static path_end -i .jpg .gif .png .css .js use_backend static if url_static default_backend app #--------------------------------------------------------------------- # static backend for serving up images, stylesheets and such #--------------------------------------------------------------------- backend static balance roundrobin server static 127.0.0.1:4331 check #--------------------------------------------------------------------- # round robin balancing between the various backends #--------------------------------------------------------------------- backend app balance roundrobin server app1 127.0.0.1:5001 check server app2 127.0.0.1:5002 check server app3 127.0.0.1:5003 check server app4 127.0.0.1:5004 check # HAProxy管理网页 listen stats *:1080 #监听端口 stats refresh 30s #统计页面自动刷新时间 stats uri /stats #统计页面url stats realm Haproxy Manager #进入页面管理页面查看状态信息 stats auth admin:admin #统计页面用户名和密码设置 #stats hide-version #隐藏统计页面上HAProxy的版本信息 # 第二种建立集群的方式 listen websrv-rewrite *:80 balance roundrobin server web1 192.168.2.100:80 check inter 2000 rise 2 fall 5 #每隔2000ms做一次健康检查失败5次fall算失败成功2次rise算成功 server web2 192.168.2.120:80 check inter 2000 rise 2 fall 5注意建立集群的两种方式frontend和listen推荐使用listen配置简单方便。3启动服务并设置开机启动[roothaproxy ~]# systemctl start haproxy.service [roothaproxy ~]# systemctl enable haproxy.service‍
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站运营方法产品推广软文200字

简介: CSDN博客专家、《Android系统多媒体进阶实战》作者 博主新书推荐:《Android系统多媒体进阶实战》🚀 Android Audio工程师专栏地址: Audio工程师进阶系列【原创干货持续更新中……】🚀 Android多媒体专栏地址&a…

张小明 2026/1/17 17:07:28 网站建设

网站管理基本内容wordpress本地如何安装

你是不是也这样:下载的PDF堆满文件夹,想找的时候死活记不住名字;读文献时灵感一闪,回头却找不到记在哪了;写论文时,调整一个引用格式就要折腾半小时…文献管理不是小事,它直接决定了你的研究效率…

张小明 2026/1/17 17:07:29 网站建设

网站空间要多少钱有没有做门店设计的网站

Bootstrap 5零基础实战:15分钟构建专业响应式网站 【免费下载链接】bootstrap 项目地址: https://gitcode.com/gh_mirrors/boo/bootstrap 还在为网页在不同设备上显示效果不一致而烦恼吗?想要快速搭建美观专业的网站界面,却不知从何入…

张小明 2026/1/17 17:07:30 网站建设

银行管理系统网站建设建设网站列表

亚马逊2025年全球峰会宣告了一个明确信号:“物找人”的AI新零售时代已经全面到来,以Rufus为代表的AI购物助手正重塑流量分配和产品曝光机制,卖家不能仅依赖竞价广告和关键词,而需理解AI的“思维”,系统优化产品的“可被…

张小明 2026/1/17 17:07:30 网站建设

如何建个人微信公众号广东公司搜索seo哪家强

LISA梯度采样技术应用实例分享,训练效率提升显著 在当前大语言模型(LLM)和多模态模型参数规模动辄上百亿甚至千亿的背景下,微调这类庞然大物早已不再是“丢进数据跑几个epoch”那么简单。算力门槛高、显存吃紧、训练周期长&#x…

张小明 2026/1/17 17:07:31 网站建设

优秀的网站建设解决方案网络营销服务的特点

随着用户与好写作AI交互的深入,其使用行为呈现出显著的阶段性演变特征。这一过程并非简单的功能重复,而是一个从外部工具借助到内化认知习惯、从辅助到深度整合的自然演进。本研究通过长期追踪与日志分析,揭示了这一动态过程及其内在机制。好…

张小明 2026/1/17 17:07:34 网站建设