LVS专题: NAT和DR模型实现Web负载均衡

LVS专题: NAT和DR模型实现Web负载均衡

前言:

在上篇文章中我们讲了一些LVS的基本概念和相应模型的实验原理和流程,本篇文章我们主要使用lvs为web服务提供负载均衡

NAT实现

实验拓扑

blob.png

实验环境

主机 IP地址 功用
Director.anyisalin.com 172.16.1.2,172.16.2.2 LVS-Director
rs1.anyisalin.com 172.16.2.3 Real Server
rs2.anyisalin.com 172.16.2.3 Real Server

注意: 本文实验中所有主机SElinux和iptables都是关闭的

实验步骤

Real Server配置

[root@rs1 ~]# yum install httpd -y &> /dev/null && echo success || echo failure    #RS1安装httpd
success #安装成功
[root@rs1 ~]# route add default gw 172.16.2.2  #设置默认网关为Director的DIP
[root@rs1 ~]# echo "<h1>This is Real Server 1 </h1>" > /var/www/html/index.html    #添加网页
[root@rs1 ~]# service httpd start &> /dev/null && echo success #启动httpd服务
success #启动成功

##以下操作在rs2上执行

[root@rs2 ~]# yum install httpd -y &> /dev/null && echo success || echo failure    #RS1安装httpd
success #安装成功
[root@rs2 ~]# route add default gw 172.16.2.2  #设置默认网关为Director的DIP
[root@rs2 ~]# echo "<h1>This is Real Server 2 </h1>" > /var/www/html/index.html    #添加网页
[root@rs2 ~]# service httpd start &> /dev/null && echo success #启动httpd服务
success #启动成功

Director配置

IP地址配置的过程就不写了

[root@director ~]# curl 172.16.2.3 #可以访问RS1
<h1>This is Real Server 1 </h1>
[root@director ~]# curl 172.16.2.4 #可以访问RS2
<h1>This is Real Server 2 </h1>
[root@director ~]# cat /proc/sys/net/ipv4/ip_forward   #查看内核核心转发是否开启
0   #没有开启
[root@director ~]# echo 0 > /proc/sys/net/ipv4/ip_forward  #开启路由转发, 若要永久修改自行配置配置文件

##添加ipvs规则, 这里为了直观, 所以选择了Round Robin的调度方法
[root@director ~]# ipvsadm -A -t 172.16.1.2:80 -s rr
[root@director ~]# ipvsadm -a -t 172.16.1.2:80 -r 172.16.2.3 -m
[root@director ~]# ipvsadm -a -t 172.16.1.2:80 -r 172.16.2.4 -m

[root@director ~]# ipvsadm -L -n   #查看ipvs规则的信息
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
 ->
RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.1.2:80 rr
 ->
172.16.2.3:80                Masq    1      0          0        
 ->
172.16.2.4:80                Masq    1      0          0        
[root@director ~]#

测试

LVS专题: NAT和DR模型实现Web负载均衡

DR实现

实验拓扑

blob.png

实验环境

主机 IP地址 功用
director.anyisalin.com 172.16.2.2,172.16.2.5 lvs-director
rs1.anyisalin.com 172.16.2.3,172.16.2.5 lvs-rs
rs.anyisalin.com 172.16.2.4,172.16.2.5 lvs-rs

注意: 本文实验中所有主机SElinux和iptables都是关闭的

实验步骤

由于LVS-NAT模式较为复杂,所以配置较为麻烦, 如果对LVS-DR模式还不是很理解的可以看我上一篇博客

Director配置

[root@director ~]# ifconfig eth1:0 172.16.2.5/32 broadcast 172.16.2.5 up   #配置VIP地址
[root@director ~]# route add -host 172.16.2.5 dev eth1:0   #添加一条路由避免地址冲突
[root@director ~]# ipvsadm -A -t 172.16.2.5:80 -s rr
[root@director ~]# ipvsadm -a -t 172.16.2.5:80 -r 172.16.2.3 -g
[root@director ~]# ipvsadm -a -t 172.16.2.5:80 -r 172.16.2.4 -g

Real Server配置

##修改内核参数,若要永久生效请修改配置文件
[root@rs1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@rs1 ~]# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
[root@rs1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@rs1 ~]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
[root@rs1 ~]# ifconfig lo:0 172.16.2.5/32 broadcast 172.16.2.5 up  #配置VIP到lo:0
[root@rs1 ~]# route add -host 172.16.2.5 dev lo:0
[root@rs1 ~]# yum install httpd -y &> /dev/null && echo success || echo failure    #RS1安装httpd
success #安装成功
[root@rs1 ~]# echo "<h1>This is Real Server 2 </h1>" > /var/www/html/index.html    #添加网页
[root@rs1 ~]# service httpd start &> /dev/null && echo success #启动httpd服务
success #启动成功

##以下操作在rs2中执行
[root@rs2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@rs2 ~]# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
[root@rs2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@rs2 ~]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
[root@rs2 ~]# ifconfig lo:0 172.16.2.5/32 broadcast 172.16.2.5 up  #配置VIP到lo:0
[root@rs2 ~]# route add -host 172.16.2.5 dev lo:0
[root@rs2 ~]# yum install httpd -y &> /dev/null && echo success || echo failure    #RS1安装httpd
success #安装成功
[root@rs2 ~]# echo "<h1>This is Real Server 2 </h1>" > /var/www/html/index.html    #添加网页
[root@rs2 ~]# service httpd start &> /dev/null && echo success #启动httpd服务
success #启动成功

测试

LVS专题: NAT和DR模型实现Web负载均衡

总结:

本文介绍了如何使用lvs来对多台服务器进行负载均衡, 但是还是有多情况是本文没有介绍的, 例如TUN, FULLNAT等, 以后有机会会和大家分享, 过两天可能会写使用keepalive+lvs实现director的高可用, 敬请期待 
作者:AnyISalIn QQ:1449472454 
感谢:MageEdu

原创文章,作者:Net18-AnyISalIn,如若转载,请注明出处:http://www.178linux.com/14212

(0)
Net18-AnyISalInNet18-AnyISalIn
上一篇 2016-04-05 21:24
下一篇 2016-04-05 22:40

相关推荐

  • 正则表达式30分钟入门教程

    来园子之前写的一篇正则表达式教程,部分翻译自codeproject的The 30 Minute Regex Tutorial。 由于评论里有过长的URL,所以本页排版比较混乱,推荐你到原处查看,看完了如果有问题,再到这里来提出. 一些要说的话: 如果你没有正则表达式的基础,请跟着教程“一步步来”。请不要大概地扫两眼就说看不懂——以这种态度我写成什么样你也看不…

    2015-03-12
  • VRRP协议

    VRRP协议 Virtual Router Redundancy Protocol 虚拟路由器冗余协议。 Vrrp协议在linux上的实现(软件实现)是keepalived。 VRRP简单的讲,就是心跳信息。 主节点不断的向备用节点广播信息,信息包含自己的心跳和优先级。 不光如此,还可以在主节点上安装一个监控,来监控其他资源,如果这些资源运行正常,就可以给其…

    2016-11-02
  • 高级文件系统管理(swap,RAID,LVM)

    交换分区wasp swap文件系统:     linux上的交换分区必须使用独立的文件系统;         其文件系统的system ID必须为82 创建swap设备,文件系统,使用mkswap命令 创建步骤:   &…

    Linux干货 2016-08-30
  • 第二十二周作业

    1、请描述本地文件系统和分布式文件系统的特点; 本地文件系统: 本地文件系统主要是指Ext2,Ext3,Btrfs,XFS这类(很难概括,只好举例子),它们通常提供以下功能: 1.扩展性:随着系统容量的增加保持性能,不随容量变化而导致性能震荡。比如一个目录下的海量文件,在EXT2/3中由于目录设计问题会导致较大的性能问题。再比如EXT2/3中的Metadat…

    2017-09-23
  • 通过FTP服务怒刷基础功法熟练度(匿名篇)

        Linux门派多种多样,那么本次就讲讲本人刷基本命令熟练度的方法。FTP原理什么的都不说了,网上有很多。直接上酸菜~学徒水平,大师勿笑。     本篇搭载的是FTP匿名用户访问,同时可以在服务器上进行创建删除等操作。危险系数有点点大,仅推荐用来刷命令熟练度使用。我用的Li…

    2017-07-25
  • n25_第一周作业

    1.描述计算机的组成及其功能。 主要分为五个部分: 1. 控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。 2. 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。 3. 存储器(Memo…

    Linux干货 2016-12-01