黄岛网站建设公司,学校网站建设意义,今天的新闻有哪些,小程序公司十大排名均衡负载集群#xff08;LBC#xff09;
客户–通过Internet—负载调度器—n台真实服务器
负载调度器#xff1a;
软件#xff1a;LVS#xff1b;Nginx#xff1b;Haproxy硬件#xff1a;F5#xff1b;
LVS架构#xff1a;
使用到C/S#xff08;B/S…均衡负载集群LBC
客户–通过Internet—负载调度器—n台真实服务器
负载调度器
软件LVSNginxHaproxy硬件F5
LVS架构
使用到C/SB/S架构
Nginx的负载均衡
只能使用在B/S架构上
LVS的工作层级
用户ipvsadm–命令行管理工具内核ipvs
1、LVS概述
LVS相关原理
LVS的组成 IPVS运行内核空间IPVSADM运行在用户空间管理集群服务器的命令工具 LVS原理根据用户请求的套接字判断分流至真实服务器的工作模块
LVS工作方式
工作模式 NAT模式TUN模式DR模式GitHub–正在开发
实验主机的配置
规划 负载调度器192.168.75.10后端服务器192.168.75.11/12 服务器配置要求 系统centos6.x都可以网卡双网卡 eth0充当外网192.168.75.0/24eth1充当内网172.24.254.0/24 备注这个是是实验的预配置
构建一台主机node0–然后复制出来5台用于后面的实验
#修改一下主机名--永久修改
[rootnode0 ~]# vim /etc/sysconfig/network
NETWORKINGyes
HOSTNAMEnode0
#修改一下主机名
[rootnode0 ~]# hostname LVS-SERVER
[rootnode0 ~]# su -
#关闭一下NetworkManager--关闭网卡的守护进程
#关闭一下网卡的守护进程--Centos6.8需要关闭我的实验环境是没有的使用的是Centos6.4
[rootLVS-SERVER ~]# service NetworkManager stop#配置网卡公网ip
[rootLVS-SERVER ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICEeth0
TYPEEthernet
ONBOOTyes
BOOTPROTOstatic
IPADDR192.168.75.10
NETMASK255.255.255.0
GATEWAY192.168.75.2
#配置内网ip
[rootLVS-SERVER ~]# cd /etc/sysconfig/network-scripts/
[rootLVS-SERVER network-scripts]# cp -a ifcfg-eth0 ifcfg-eth1
[rootLVS-SERVER network-scripts]# vim ifcfg-eth1
DEVICEeth1
TYPEEthernet
ONBOOTyes
BOOTPROTOstatic
IPADDR172.25.254.10
NETMASK255.255.255.0
#重启网络
[rootLVS-SERVER network-scripts]# service network restart#配置光盘yum源
[rootLVS-SERVER network-scripts]# cd /etc/yum.repos.d/
[rootLVS-SERVER yum.repos.d]# vim local.repo
[local]
namelocal_repo
baseurlfile:///mnt/cdrom
enabled1
gpgcheck0
#配置自动开机挂载光盘
[rootnode0 ~]# vim /etc/fstab
...........#在末行添加以下内容
/dev/cdrom /mnt/cdrom iso9660 defaults 0 0#关闭iptables和selinux
[rootnode0 ~]# service iptables stop
[rootnode0 ~]# chkconfig iptables off
[rootnode0 ~]# getenforce
Disabled#关闭对应的ARP响应以及公告功能---这个是可选选---先把它所有的写进内核#需要的时候打开
[rootnode0 ~]# vim /etc/sysctl.conf
..............#在末行添加如下几行
#关闭ARP功能
#net.ipv4.conf.all.arp_ignore 1
#net.ipv4.conf.all.arp_announce 2_
#net.ipv4.conf.default.arp_ignore 1
#net.ipv4.conf.default.arp_announce 2
#net.ipv4.conf.lo.arp_ignore 1
#net.ipv4.conf.lo.arp_announce 2#使用命令重新读取
[rootnode0 ~]# sysctl -p2、LVS-DR模式
工作逻辑图 客户–与后端、LVS都处于同一个网段当中
用户–访问LVS服务器–找后端服务器
二层MAC地址转发–同一个IP被后端服务器隐藏了
模式的特点
集群节点必须在一个网络当中集群节点必须处于同一个广播域中真实服务器网关指向路由器RIP既可以是私网地址又可以是公网IP负载调度器只负责入站请求压力是最小的大大减轻负载调度器的压力支持更多的服务器节点不能支持端口映射
ARP的响应级别
arp-ignore 0只要本机配置有相应的IP地址就有响应1仅在请求的目标地址配置在请求到达的网络接口上时才给与响应
ARP的通告行为
arp-announce 0将本机任何网络接口上的任何地址都向外通告1尽可能避免像目标网络通告与其网络不匹配的地址信息表2仅向目标网络通告与其网络相匹配的地址信息
LVS-DR模式实验
负载调度器配置如下—使用是的centos7.x 服务器192.168.75.130
#首先关闭一下网卡的守护进程
[rootnode0 ~]# systemctl stop NetworkManager
[rootnode0 ~]# systemctl disable NetworkManager#创建一个eth0:0用来充当集群入口接口
[rootnode0 ~]# cd /etc/sysconfig/network-scripts/
[rootnode0 network-scripts]# cp ifcfg-ens32 ifcfg-ens32:0#配置一个虚拟ip
[rootnode0 network-scripts]# vim ifcfg-ens32:0
TYPEEthernet
BOOTPROTOstatic
NAMEens32:0 #注意修改网卡名
DEVICEens32:0
ONBOOTyes
IPADDR192.168.75.100 #这个就是虚拟ip--自己随便创建的
PREFIX24#然后把子接口拉起来
[rootnode0 network-scripts]# ifup ens32:0#关闭网卡重定向功能
[rootnode0 network-scripts]# cd
[rootnode0 ~]# vim /etc/sysctl.conf
............#在末行添加如下内容够
#关闭网卡重定向功能
net.ipv4.conf.all.send_redirects 0
net.ipv4.conf.default.send_redirects 0
net.ipv4.conf.eth0.send_redirects 0#刷新配置文件
[rootnode0 ~]# sysctl -p#重载ipvs模块
[rootnode0 ~]# modprobe ip_vs#安装ipvsadmin命令行工具
[rootnode0 ~]# yum -y install ipvsadm后端服务器配置—这里使用两台服务器–两台服务器的配置完全是一样的 192.168.75.131/132两台服务器分别是安装httpd 创建一个页面用于实验区分
#关闭一下网卡的守护进程
[rootNode1 ~]# systemctl stop NetworkManager
[rootNode1 ~]# systemctl disable NetworkManager#配置一个环回口
[rootNode1 ~]# cd /etc/sysconfig/network-scripts/
[rootNode1 network-scripts]# cp ifcfg-lo ifcfg-lo:0
[rootNode1 network-scripts]# vim ifcfg-lo:0
DEVICElo:0
IPADDR192.168.75.100 #配置虚拟IP--这个ip和调度服务器的ip是一样的
NETMASK255.255.255.255 #广播全部是255
...............
#拉起来网卡lo0
[rootNode1 ~]# systemctl restart network#调整一下内核参数
[rootNode1 network-scripts]# cd
[rootNode1 ~]# vim /etc/sysctl.conf
..........
#关闭ARP功能
net.ipv4.conf.all.arp_ignore 1
net.ipv4.conf.all.arp_announce 2_
net.ipv4.conf.default.arp_ignore 1
net.ipv4.conf.default.arp_announce 2
net.ipv4.conf.lo.arp_ignore 1
net.ipv4.conf.lo.arp_announce 3#重新读取一下
[rootNode1 ~]# sysctl -p
#添加一个路由--#如果有人来访问这个ip就把它丢给lo:0网卡
[rootnode2 ~]# route add -host 192.168.75.100 dev lo:0#然后配置开机自启
[rootnode2 ~]# echo route add -host 192.168.75.100 dev lo:0 /etc/rc.local #安装一下httpd
[rootNode1 ~]# yum -y install httpd#启动httpd
[rootNode1 ~]# systemctl start httpd.service
[rootNode1 ~]# systemctl enable httpd.service #修改默认页面
[rootNode1 ~]# vim /var/www/html/index.html
this is node1-131#测试一下是否能够访问
[rootNode1 ~]# curl localhost
this is node1-131最后回到调度服务器node0配置 192.168.75.130开始创建lvs集群
#查看一下当前集群内容---还没有创建因此没有任何集群信息
[rootnode0 ~]# ipvsadm -v
ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)#添加一下集群
---A是添加一个集群
---t是指定一个虚拟ip以及端口
---s指定轮询模式为rr
[rootnode0 ~]# ipvsadm -A -t 192.168.75.100:80 -s rr #添加集群子节点
---a添加子节点
---r指定子节点的真实ip以及端口
---g指定了是DR模式
[rootnode0 ~]# ipvsadm -a -t 192.168.75.100:80 -r 192.168.75.131:80 -g#查看一下集群的信息
[rootnode0 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size4096)
Prot LocalAddress:Port Scheduler Flags- RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.75.100:80 rr- 192.168.75.131:80 Route 1 0 0 - 192.168.75.132:80 Route 1 0 0 [rootnode0 ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes- RemoteAddress:Port
TCP 192.168.75.100:80 2 33 0 6972 0- 192.168.75.131:80 1 6 0 360 0- 192.168.75.132:80 1 27 0 6612 0测试一下
http://192.168.75.100/
3、LVS-NAT模式
工作逻辑图
用户—访问LVS服务器
源是自己目的是LVS
LVS—访问后端服务器
LVS–通过DNAT–把目的地址修改成后端服务器后端返回–也是通过SNAT–给到LVS–然后再给到用户
DNAT目的地址转换
SNAT源地址转换
NAT模式的特点
集群节点必须在一个网络中真实服务器必须将网关指向负载调度器RIP 通常都是私有 P仅用于各个集群节点通信负载调度器必须位于客户端和真实服务器之间充当网关支持端口映射负载调度器操作系统必须是 Linux真实服务器可以使用任意系统进出数据报文都要进过负载调度器机器压力较大
实验架构图
客户端---路由器---后端服务器实验环境的构建 负载调度器192.168.75.110 后端服务器192.168.75.130 网络类型仅主机模式172.25.254.130虚拟机硬件配置 硬件2U–CPU内存2G网卡两张–不同网段 192.168.75.0/24–充当公网172.25.254.0/24–充当私网 虚拟机软件配置 后端服务器192.168.75.131
LVS负载调度器配置
LVS负载调度服务器Centos6.x双网卡192.168.75.110–充当外网 172.25.254.110–充当内网和两台后端服务器130和131互通
#关闭selinux和防火墙
[rootlocalhost ~]# getenforce
Disabled[rootlocalhost ~]# service iptables stop
[rootlocalhost ~]# chkconfig iptables off#关闭一下网卡的守护进程--Centos6.8需要关闭我的实验环境是没有的使用的是Centos6.4
[rootlocalhost ~]# service NetworkManager stop#配置光盘yum源
[rootlocalhost ~]# vim /etc/yum.repos.d/local.repo
[local]
namelocal_repo
baseurlfile:///mnt/cdrom
enabled1
gpgcheck0
#挂载yum源
[rootlocalhost ~]# mount /dev/cdrom /mnt/cdrom/#配置网络--#公网网络--如下
[rootlocalhost ~]# cd /etc/sysconfig/network-scripts/
[rootlocalhost network-scripts]# vim ifcfg-eth0
DEVICEeth0
TYPEEthernet
ONBOOTyes
BOOTPROTOstatic
IPADDR192.168.75.110
NETMASK255.255.255.0#私网网络如下--eth1是使用ip a s 可以看出内核识别的网卡名直接复制出来修改ip
[rootlocalhost network-scripts]# cp -a ifcfg-eth0 ifcfg-eth1
[rootlocalhost network-scripts]# vim ifcfg-eth1
DEVICEeth0
TYPEEthernet
ONBOOTyes
BOOTPROTOstatic
IPADDR172.25.254.110
NETMASK255.255.255.0#重启网络
[rootlocalhost network-scripts]# service network restart#关闭网卡的重定向功能
[rootlocalhost network-scripts]# vim /etc/sysctl.conf #在文件的末行添加
#关闭网卡重定向
net.ipv4.conf.all.send_redirects 0
net.ipv4.conf.default.send_redirects 0
net.ipv4.conf.eth0.send_redirects 0
net.ipv4.conf.eth1.send_redirects 0#开启路由转发功能
[rootlocalhost ~]# vim /etc/sysctl.conf
..........7 net.ipv4.ip_forward 1
........#查看一下配置是否生效
[rootlocalhost network-scripts]# sysctl -p#重新挂载ipvs模块
[rootlocalhost network-scripts]# modprobe ip_vs
#安装ipvsadm命令行工具
[rootlocalhost network-scripts]# yum -y install ipvsadm#查看当前的ipvs集群内容
[rootlocalhost network-scripts]# ipvsadm -v#然后开启防火墙
[rootlocalhost ~]# service iptables start#一定要先清楚一下防火墙规则--然后在设置防火墙规则
[rootlocalhost ~]# iptables -F#设置防火墙规则#添加防火墙规则当源地址是内网网段并且出口网卡为eth0的时候进行SNAT转换转换源地址为外网网卡地址
[rootlocalhost ~]# iptables -t nat -A POSTROUTING -s 172.25.254.0/24 -o eth0 -j SNAT --to-source 192.168.75.110#查看规则是否生效
[rootlocalhost ~]# iptables -t nat -L
.........#看到这一行代表成功
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 172.25.254.0/24 anywhere to:192.168.75.110 #添加集群--添加ipvsadm的TCP集群--指定规则是轮询
[rootlocalhost ~]# ipvsadm -A -t 192.168.75.110:80 -s rr#为集群添加节点---m指定的是LVS的nat模式
[rootlocalhost ~]# ipvsadm -a -t 192.168.75.110:80 -r 172.25.254.130:80 -m
[rootlocalhost ~]# ipvsadm -a -t 192.168.75.110:80 -r 172.25.254.131:80 -m#查看一下集群内容
[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.75.110:80 rr- 172.25.254.130:80 Masq 1 0 0 - 172.25.254.131:80 Masq 1 0 0 #把集群保存到配置文件开启持久化
[rootlocalhost ~]# service ipvsadm save
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm: [ OK ]#设置开机自启动
[rootlocalhost ~]# chkconfig ipvsadm on后端服务器131/132配置
安装httpd注意网段是172.25.254.0/24注意添加网关地址
#查看一下ip
[rootNode1 ~]# ip a
.........
inet 172.25.254.131/24 brd 172.25.254.255 scope global noprefixroute ens32
........#安装httpd
[rootNode1 ~]# yum -y install httpd#修改默认页面
[rootNode1 ~]# vim /var/www/html/index.html
this is 131.index#启动apaceh
[rootNode1 ~]# systemctl start httpd
[rootNode1 ~]# curl localhost
this is 131.index#把网关指定到调度服务器ip
[rootNode1 ~]# route add default gw 172.25.254.110
[rootNode1 ~]# route -n
最后浏览器访问–到这里位置实验成功
http://192.168.75.110/
4、LVS-TUN模式
工作逻辑图
客户端、LVS、后端–大家都是公网地址
客户–访问LVS—
数据包的二次封装
模式的特点
集群节点不必位于同一个物理网络但必须都拥有公网 IP (或都可以被路由)真实服务器不能将网管指向负载调度器RIP 必须是公网地址负载调度器只负责入站请求不支持端口映射功能发送方和接收方必须支持道功能