微信营销推广的方式有哪些,宁波网站制作优化服务公司,万维网的网站,企业首次建设网站方案流程集群概述
负载均衡技术类型
四层负载均衡器 也称为 4 层交换机#xff0c;主要通过分析 IP 层及 TCP/UDP 层的流量实现基于 IP 加端口的负载均衡#xff0c;如常见的 LVS、F5 等#xff1b;
七层负载均衡器 也称为 7 层交换机#xff0c;位于 OSI 的最高层#xff0c;即…集群概述
负载均衡技术类型
四层负载均衡器 也称为 4 层交换机主要通过分析 IP 层及 TCP/UDP 层的流量实现基于 IP 加端口的负载均衡如常见的 LVS、F5 等
七层负载均衡器 也称为 7 层交换机位于 OSI 的最高层即应用层此负载均衡器支持多种协议如HTTP、FTP、SMTP 等。7 层负载均衡器可根据报文内容配合一定的负载均衡算法来选择后端服务器即“内容交换器”。如常见的 HAProxy、Nginx。
负载均衡实现方式
硬件负载均衡产品F5 、深信服 、Radware
软件负载均衡产品 LVSLinux Virtual Server、 Haproxy、Nginx、Atsapache traffic server
LVS结构
三层结构负载调度器、服务器池、共享存储
架构对象
VSVirtual Server也称为 Director负载均衡服务器 RSReal Server真正的服务器集群中各节点 VIPDirector 向外部提供服务的 IP DIPDirector 向内部与 RS 通信的 IP RIP真实服务器的 IP CIP客户端的 IP
LVS工作模式
LVS-NATNAT模式
LVS-DR直接路由模式应用最广泛
LVS-TUNIP隧道(Tunnel)模式不常用
FULL-NAT模式双向转换模式不常用
LVS负载均衡算法
静态负载均衡 rrround robin轮询 wrrweight round robin加权轮询 shsource hashing源地址散列算法HASH dhdestination hashing目标地址 HASH
动态负载均衡
lcleash-connection最少连接 简单算法active * 256 inactive (谁的小选谁)
wlc加权最少连接 简单算法active * 256 inactive) / weight谁的小选谁
sed最少期望延迟 简单算法active 1) * 256 / weight 谁的小选谁
nqnever queue永不排队
LBLC基于局部性的最少连接
LBLCR基于局部性的带复制功能的最少连接
ipvsadm命令详解
-A添加虚拟服务节点-D删除虚拟服务节点-L查看虚拟服务节点列表-a添加真实服务节点-d删除真实服务节点-l查看真实服务节点列表-t指定虚拟服务器IP地址-s指定调度算法-r指定真实服务器节点IP地址-w指定权重值-g直接路由模式默认-i隧道模式不常用-mNAT模式案例ipvsadm -A -t 207.175.44.110:80 -s rr ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.1:80 -m ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.2:80 -m ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.3:80 -m ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.4:80 -m ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.5:80 -m
基础配置systemctl stop firewalld.service systemctl stop NetworkManager setenforce 0 sed -i s/ONBOOTno/ONBOOTyes/ /etc/sysconfig/network-scripts/ifcfg-ens33 cat /etc/sysconfig/network-scripts/ifcfg-ens33 systemctl restart network修改主机名关闭防火墙关闭Selinux关闭Networkmanager配置IP地址
LVS配置案例
实现NAT模型搭建
负载调度器配置
配置IP地址
增加一块网卡 配置ens33和ens37网卡添加路由转发
[rootlocalhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
#网卡1配置
TYPEEthernet
BOOTPROTOstatic
NAMEens33
DEVICEens33
ONBOOTyes
IPADDR192.168.31.4
PREFIX24
GATEWAY192.168.31.2
DNS1192.168.31.2
[rootlocalhost ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens37
#网卡2配置
TYPEEthernet
BOOTPROTOstatic
NAMEens37
DEVICEens37
ONBOOTyes
IPADDR192.168.217.100
PREFIX24
GATEWAY192.168.217.3
DNS1192.168.217.3[rootlocalhost ~]# vim /etc/sysctl.d/route.conf
net.ipv4.ip_forward 1
[rootlocalhost ~]# sysctl -p /etc/sysctl/route.conf
查看网卡 修改宿主机 测试网通性 LVS2、LVS3web1、web2
安装nginx
#LVS2机器上nginx1网页配置
[rootlocalhost html]# yum -y install nginx
[rootlocalhost html]# systemctl start nginx
[rootlocalhost html]# ss -anl | grep :80
nl UNCONN 0 0 0:805 *
nl UNCONN 0 0 0:805 *
tcp LISTEN 0 128 *:80 *:*
tcp LISTEN 0 128 [::]:80 [::]:* #网络源安装完成后修改网关联到LVS主机ens37上
[rootlocalhost html]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPEEthernet
BOOTPROTOstatic
NAMEens33
DEVICEens33
ONBOOTyes
IPADDR192.168.31.5
PREFIX24
GATEWAY192.168.217.100
DNS1192.168.31.2
[rootlocalhost html]# ifdown ens33 ifup ens33
成功断开设备 ens33。
连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/7#写网页内容一会测试用
[rootlocalhost ~]# cd /usr/share/nginx/html/
[rootlocalhost html]# echo nginx1 index.html
nginx1 index.html
[rootlocalhost html]# echo nginx1 index.html #LVS3机器上nginx2网页
[rootlocalhost html]# yum -y install nginx
[rootlocalhost html]# systemctl start nginx
[rootlocalhost html]# ss -anl | grep :80
nl UNCONN 0 0 0:809 *
nl UNCONN 0 0 0:809 *
nl UNCONN 0 0 15:809 *
nl UNCONN 0 0 15:809 *
nl UNCONN 0 0 16:809 *
tcp LISTEN 0 128 *:80 *:*
tcp LISTEN 0 128 [::]:80 [::]:* #网络源安装完成后修改网关联到LVS主机ens37上
[rootlocalhost html]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPEEthernet
BOOTPROTOstatic
NAMEens33
DEVICEens33
ONBOOTyes
IPADDR192.168.31.6
PREFIX24
GATEWAY192.168.217.100
DNS1192.168.31.2
[rootlocalhost html]# ifdown ens33 ifup ens33
成功断开设备 ens33。
连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/7#写网页内容一会测试用
[rootlocalhost ~]# cd /usr/share/nginx/html/
[rootlocalhost html]# echo nginx2 index.html
nginx1 index.html
[rootlocalhost html]# echo nginx2 index.html
回到LVS1继续配置
通信与配置后主机安装
yum install -y ipvsadm
加载ip_vs模块并检测 启动ipvsadm服务
systemctl start ipvsadm
启动会报错少目录文件 创建目录
#创建目录后可以启动但没有文件
[rootlocalhost ~]# mkdir /etc/sysconfig/ipvsadm
[rootlocalhost ~]# systemctl start ipvsadm
[rootlocalhost ~]# ipvsadm -A -t 192.168.217.100:80 -s rr
[rootlocalhost ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size4096)
Prot LocalAddress:Port Scheduler Flags- RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP localhost.localdomain:http rr
[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.217.100:80 rr
#移动到ipvadm配置负载分配策略
rootlocalhost sysctl.d]# ipvsadm -A -t 192.168.217.100:80 -s rr
[rootlocalhost sysctl.d]# ipvsadm -a -t 192.168.217.100:80 -r 192.168.31.5:80 -m
[rootlocalhost sysctl.d]# ipvsadm -a -t 192.168.217.100:80 -r 192.168.31.6:80 -m
[rootlocalhost sysctl.d]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size4096)
Prot LocalAddress:Port Scheduler Flags- RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.217.100:80 rr- 192.168.31.5:80 Masq 1 0 0 - 192.168.31.6:80 Masq 1 0 0
[rootlocalhost sysctl.d]# ipvsadm-save /etc/sysconfig/ipvsadm/ipvsadm
[rootlocalhost sysctl.d]# cd /etc/sysconfig/ipvsadm/
[rootlocalhost ipvsadm]# ls
ipvsadm 配置好后测试ctrlf5刷新会从web1和web2一直跳转 实现DR模型搭建
DR模型原理 LVS-DR的工作原理就是通过为请求报文重新封装一个MAC首部进行转发源MAC是DIP所在的接口的MAC目标MAC是某挑选出的RS的RIP所在接口的MAC地址源IP/PORT,以及目标IP/PORT均保持不变
LVS-DR直接路由的特点 Director和各RS上都配置使用VIP (1)确保前端路由将目标IP为VIP的请求报文发往Director (a)在前端网关做静态绑定 (b)在RS上使用arptables (c)在RS上修改内核参数以限制ARP通告和应答级别 arp_announce arp-ignore (2)RS的RIP可以使用私网地址也可以是公网地址RIP与DIP在同一IP网络RIP的网关不能指向DIP以确保响应报文不会经由Director (3)RS跟Director要在同一个物理网络 (4)请求报文要经由Director但响应不能经由Director而是由RS直接发往Client (5)不支持端口映射 还用刚才的试验机所以要关闭网卡2 清空数据还原成新的主机
[rootlocalhost ~]# ipvsadm -C
[rootlocalhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size4096)
Prot LocalAddress:Port Scheduler Flags- RemoteAddress:Port Forward Weight ActiveConn InActConn删除ens37配置文件 留一块ens33的配置文件网卡 删除ipvsadm的配置文件 并创建新的ipvsadm配置文件
[rootlocalhost ~]# rm -rf /etc/sysconfig/ipvsadm
[rootlocalhost ~]# touch /etc//sysconfig/ipvsadm删除路由转发功能
[rootlocalhost ~]# cd /etc/sysctl.d/
[rootlocalhost ~]# rm -rf route.conf
复制网卡配置ens33:0
[rootlocalhost sysctl.d]# cd /etc/sysconfig/network-scripts/
[rootlocalhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0
[rootlocalhost network-scripts]# vim ifcfg-ens33:0
TYPEEthernet
BOOTPROTOstatic
NAMEens33:0
DEVICEens33:0
ONBOOTyes
IPADDR192.168.31.200
PREFIX24
#GATEWAY192.168.31.2
#DNS1192.168.31.2
[rootlocalhost network-scripts]# systemctl restart network 配置负载分配策略
[rootlocalhost network-scripts]# ipvsadm -A -t 192.168.31.200:80 -s rr
[rootlocalhost network-scripts]# ipvsadm -a -t 192.168.31.200:80 -r 192.168.31.5:80 -g
[rootlocalhost network-scripts]# ipvsadm -a -t 192.168.31.200:80 -r 192.168.31.6:80 -g
[rootlocalhost network-scripts]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size4096)
Prot LocalAddress:Port Scheduler Flags- RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.31.200:80 rr- 192.168.31.5:80 Route 1 0 0 - 192.168.31.6:80 Route 1 0 0
保存策略
[rootlocalhost network-scripts]# ipvsadm-save /etc/sysconfig/ipvsadm接下来配置两台web
先将两台web服务器上注销网关与DNS
[rootlocalhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[rootlocalhost ~]# systemctl restart network首先负载调度器配置
内核参数配置生效后才可以进行配置web节点配置
调整ARP参数 [rootlocalhost ~]# vim /etc/sysctl.conf
[rootlocalhost ~]# sysctl -p
net.ipv4.conf.all.send_redirects 0
net.ipv4.conf.default.send_redirects 0
net.ipv4.conf.ens33.send_redirects 0配置虚拟ip地址
注意web服务器虚拟地址为32位子网验码
[rootlocalhost ~]# cd /etc/sysconfig/network-scripts/
[rootlocalhost network-scripts]# ls
ifcfg-ens33 ifdown-ib ifdown-routes ifup-aliases ifup-isdn ifup-sit network-functions
ifdown-ippp ifdown-sit ifup-bnep ifup-plip ifup-Team network-functions-ipv6
ifcfg-lo ifdown-ipv6 ifdown-Team ifup-eth ifup-plusb ifup-TeamPort
ifdown ifdown-isdn ifdown-TeamPort ifup-ib ifup-post ifup-tunnel
ifdown-bnep ifdown-post ifdown-tunnel ifup-ippp ifup-ppp ifup-wireless
ifdown-eth ifdown-ppp ifup ifup-ipv6 ifup-routes init.ipv6-global
[rootlocalhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[rootlocalhost network-scripts]# vim ifcfg-lo:0
DEVICElo:0
IPADDR192.168.31.200
NETMASK255.255.255.255
ONBOOTyes
NAMEloopback:0
[rootlocalhost network-scripts]# systemctl restart network
[rootlocalhost network-scripts]# ip a
1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet 192.168.31.200/32 brd 192.168.31.200 scope global lo:0valid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:12:94:c3 brd ff:ff:ff:ff:ff:ffinet 192.168.31.5/24 brd 192.168.31.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe12:94c3/64 scope link valid_lft forever preferred_lft forever
3: virbr0: NO-CARRIER,BROADCAST,MULTICAST,UP mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:45:34:d8 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: virbr0-nic: BROADCAST,MULTICAST mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:45:34:d8 brd ff:ff:ff:ff:ff:ff web服务器分别添加回环路由
[rootlocalhost network-scripts]# route add -host 192.168.31.200/32 dev lo:0
[rootlocalhost network-scripts]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.31.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.31.200 0.0.0.0 255.255.255.255 UH 0 0 0 lo这样重启就没有了 写到etc下的bashrc或
写下来就可以访问了
ctrlf5 也可以先tcpdump抓包
tcpdump -i ens33:0 ./tcpdump.txt
查找看http的包 或者用Wireshark抓包软件 可以看到全是200网段看不到web1、2的ip地址 课下了解内容CDN内容分发网络—网页缓存加速