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

相关推荐

  • Linux之启动和内核管理

     Linux之启动和内核管理     本文主要包括以下内容一  CentOS 5和6的启动流程二  服务管理三  Grub管理四  自制Linux五  启动排错六  编译安装内核   Linux组成Linux: kernel+rootfskernel: 进程管…

    Linux干货 2016-09-15
  • N25 – 第二周博客作业

      Linux上的文件管理类命令有哪些,其常用的使用方法及相关示例演示 more: more命令非常简单,只用more file即可,但是more命令有一个特点,就是翻屏至文件尾部后自动退出 less: less命令就是在使用man时是一样的,因为man手册就是调用less来查看的  head: head命令用来查看文件的前#行,#默认为…

    Linux干货 2016-12-07
  • IP地址的划分及优化

    IP地址定义:互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,所以它可以唯一标识IP网络中的每台设备,同时没台主机(计算机,网络设备,外围设备)必须具有唯一的地址。 IP地址相比于MA…

    Linux干货 2017-07-02
  • nfs

    NFS 服务 : Network File system 网络文件系统效果: 好像在本机硬盘一样原理: 当用户去访问 映射成本地系统 // 原理 挂载属性: vsftpd 是应用程序,(内核支持) nfs 是一个文件系统应用: 局域网(最多用于) — 依赖网络 应用层 app httpd 80 vsftpd 传输层 tcp/ipinternet层…

    Linux干货 2018-02-05
  • 系统进程管理

    ps 查看系统进程命令 启动进程的方式:     系统启动过程中自动启动:与终端无关的进程;     用户通过终端启动:与终端相关的进程; 选项:         a:所有与终端相关的进程; &nbs…

    Linux干货 2016-09-06
  • 配置使用基于mysql存储rsyslog日志信息

    配置使用基于mysql存储rsyslog日志信息   日志对于我们来说,肯定不会陌生。每个系统应用,只要有人访问,每时每刻都会产生大量的日志,用来记录服务器应用的运行信息。以便于我们在服务有异常时进行查看,或是从日志记录中提取出应用系统的运行信息。某些电商Web网站甚至会利用日志记录去对用户的购买行为作分析,以便更好的服务于客户。 &nb…

    Linux干货 2016-09-05