web服务器集群--部署lvs负载均衡之NAT模式/DR模式

1 篇文章 0 订阅

一,概念

1,LVS简介

LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器。它是我们国家的章文嵩博士的一个开源项目。在linux内存2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核。

2,集群的含义

(1)集群,群集
(2)由多台主机构成,但对外只表现一个整体

3,根据群集所针对的目标差异,可分为三种类型

(1)负载均衡群集
(2)高可用群集
(3)高性能运算群集

4,负载均衡集群是目前企业用的最多的群集

5,群集负载调度技术的三种工作模式

(1)地址转换(NAT模式)
在这里插入图片描述

(2)IP隧道(Tunnel模式)
在这里插入图片描述

(3)直接路由(DR模式)
在这里插入图片描述

6,LVS的负载均衡调度算法

(1)轮询–rr
(2)加权轮询–wrr
(3)最少连接–LC
(4)加权最少连接–WLC
(5)基于局部的最少连接–LBLC
(6)带复制的基于局部性的最少连接–LBLCR
(7)目标地址散列调度–DH
(8)源地址散列调度–SH
(9)最短的期望的延迟–SED
(10)最少队列调度–NQ

二,实验过程详解

1,NAT模式

准备环境:在这里插入图片描述
NET模式工作原理
将一台调度机作为内网与外网的交换桥梁,客户端只能访问到调度机地址,然后由调度机向真实服务器发送请求,真实服务器再向调度机提供资源,调度机再将资源提供给用户。
准备环境
一台调度器:配置双网卡 VM1:192.168.100.41 桥接网卡:10.0.2.73
两台WEB服务器集群池:
内网:192.168.148.130 外网192.168.24.133 调度服务器
192.168.24.131 wed服务器(nginx)
192.168.24.132 wed服务器(apache)
这边的网关必须指向192.168.24.133这个地址
一台windos10测试机

modprobe ip_vs    //加载ip_vs模块
cat /proc/net/ip_vs  //查看ip_vs 信息
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn

翻译:
IP虚拟服务器版本1.2.1(大小=4096)
端口调度器标志
—> RemoteAddress:端口转发权重ActiveConn InActCon

yum install -y ipvsadm //安装ipvsadm 管理工具
[root@localhost ~]# ipvsadm -v  //查看版本
ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)
ipvsadm -A -t 192.168.211.201:80 -s rr  // 创建虚拟服务器

对于负载均衡调度器来说,VIP 必须是本机实际已启用的IP地址,若群集的VIP地址为192.168.211.201,针对80 端口提供分流服务,使用轮询的调度算法
注:-A 表示添加虚拟服务
-a 表示添加真实服务器
-t用来指定VIP地址及tcp端口,
-s用来指定负载调度算法{(轮询:rr),(加权轮询:wrr),(最少连接:lc),(加权最少连接:wlc).
指定节点:

ipvsadm -a -t 192.168.148.130:80 -r 192.168.24.132:80 -m -w 1 
ipvsadm -a -t 192.168.148.130:80 -r 192.168.24.131:80 -m -w 1 

格式:ipvsadm -a -t(指定虚拟ip地址) 调度机公有地址:端口 -r(指出地址参数) web服务器私有地址:端口 -m(表示NAT群集模式) -w(权重)
ipvsadm -ln //查看添加的节点
默认是80端口
上述输出结果,FORWARD列下Masq 对应Masquerade (地址伪装),表示采用的群集模式为NAT; 如果是Route,则表示采用的群集模式为DR。
ipvsadm -d -r192.168.211.135:80 -t 192.168.211.201:80 #删除服务节点
需要删除某一个节点时,使用选项-d
需要删除整个虚拟服务器时,使用选项-D
保存负载分配策略
使用 导入/导出 工具 ipvsadm-restore(导入) / ipvsadm-save(导出)

[root@localhost ~]# ipvsadm-save > /etc/sysconfig/ipvsadm   #将策略保存到文件
[root@localhost ~]# cat /etc/sysconfig/ipvsadm

显示结果:-A -t www.b.com:http -s rr
-a -t www.b.com:http -r 192.168.131.128:http -m -w 1
配置负载调度器
(1)配置SNAT转发规则

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1    #再最后一行添加该代码
sysctl -p        #*刷新一下*

到wed服务器中部署http服务
浏览器访问测试:
在这里插入图片描述
在这里插入图片描述

2,DR模式

(1)准备环境
四台Centos7虚拟机,并配置双网卡
(2)调度机配置
1.首先,创建一个vip虚拟地址。进入到网卡配置文件,复制网卡ens33并且命名为ens33:0,

cd/etc/sysconfig/network-scripts/  #进入网卡配置
cp ifcfg-ens33 ifcfg-ens33:0         #复制网卡,做虚拟VIP网卡
vim ifcfg-ens33:0                         #编辑VIP地址

BOOTPROTO=static
NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.148.131
NETMASK=255.255.255.0

ifdown ens33:0;ifup ens33:0(systemctl restart network)    #重启网卡

输入ip a 便可查看:
在这里插入图片描述
2.导入模块(modprobe ip_vs)并且下载ipvsadm命令
[root@localhost network-scripts]# modprobe ip_vs
3.添加vip地址作为调度器地址,并且加入节点服务器的真实ip地址:(注:有需要删除服务节点的话使用命令:ipvsadm -d -r192.168.148.131:80(虚拟ip地址) -t 192.168.148.132(节点服务器地址):80

ipvsadm -A -t 192.168.148.131:80 -s rr
ipvsadm -a -t 192.168.148.131:80 -r 192.168.148.132 -g -w 1
ipvsadm -a -t 192.168.148.131:80 -r 192.168.148.133 -g -w 1
使用命令查看是否添加成功:

[root@localhost network-scripts]# ipvsadm -ln

在这里插入图片描述
3.修改/etc/sysctl.conf配置文件,在尾部追加命令:

net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

并输入sysctl -p来进行验证:
在这里插入图片描述
4.永久保存负载分配策略
使用 导入/导出 工具 ipvsadm-restore(导入) / ipvsadm-save(导出)

ipvsadm-save > /etc/sysconfig/ipvsadm   #将策略保存到文件
cat /etc/sysconfig/ipvsadm         #查看文件

重启并设置开机自启动:

systemctl enable ipvsadm
systemctl restart ipvsadm

(3)web服务器1/2(nginx/aPache)配置
1.使用ip a 命令查看双网卡是否配置成功,并重启服务
在这里插入图片描述
进入网卡配置文件,配置环回接口,将环回接口文件给复制下来并且命名为ifcfg-lo:0并且进行修改:

cd /etc/sysconfig/network-scripts/  #进入网卡配置
cp ifcfg-lo ifcfg-lo:0                      #复制环回接口
vim ifcfg-lo:0                              #编辑环回接口

在这里插入图片描述

systemctl restart network   #重启网卡

2.进入/etc/sysctl.conf文件中在后面追加如下字段:

net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.lo.all_ignore=1
net.ipv4.conf.lo.all_announce=2

使用命令sysctl -p 查看是否输入成功:
在这里插入图片描述

3.添加路由器,指明路由方向

route add -host 192.168.148.131 dev lo:0   #指明路由
 route -n                #查看路由

在这里插入图片描述
两台节点服务器配置相同,到这里我们就已经完成了节点服务器的配置。我们可以先利用windows10测试机进行一个验证,查看前面所作的配置是否成功。
输入192.168.148.131(调度机虚拟地址)
(4)测试
web服务器1:
在这里插入图片描述
web服务器2:
在这里插入图片描述
调度机:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值