一、简介

  1、理论已经在上一篇博客简述,不了解得可以看看

    https://www.cnblogs.com/zhangxingeng/p/10497279.html

  2、LVS-DR优缺点复习     

    关于这种模式:

      1)确保前端路由器将目标ip为vip的请求报文发往director

        a、在前端网关做静态绑定;

        b、在RS上使用arptables;

        c、在RS上修改内核参数以限制arp通告即应答级别;

          arp_announce

          arp_ignore

      2)、RS的RIP可以使用私网或公网地址;

      3)、RS跟director在同一物理网络;

      4)、请求报文经由director,响应报文直接发往client;

      5)、此模式不支持端口映射;

      6)、RS支持大多数的OS;

      7)、RIP的网关不能指向DIP,以确保响应报文不经由director;

      

     缺点:LVS调度器及应用服务器在同一个网段中,因此不能实现集群的跨网段应用。

     优点:直接路由转发,通过修改请求报文的目标mac地址进行转发,效率提升明显

  3、实验拓扑

    实验说明:测试环境为虚拟机,准备三台即可,这里是四台外加本机物理机

节点 ip 应用 ip2 备注
web1 192.168.13.11(DIP) director VIP:ens37:0,192.168.13.100  
web2 192.168.13.12(RIP) rs VIP:Lo:0,192.168.13.100  
web3 192.168.13.13(RIP) rs VIP:Lo:0,192.168.13.100  
web4 192.168.13.14 client   curl
本地物理机测试 172网段 client   web访问

    

二、开始部署

  1、网络配置

   修改虚拟机网卡rip、vip、dip都在同一个网段,这里使用仅主机模式

    配置网卡基础参数这里就不演示,配置静态,网关指向仅主机虚拟网卡网关即可

   director一块网卡即可,后续配置添加vip使用别名即可,别着急,在后面具体配置上

    

1 [root@web1 ~]#  ifconfig
2 ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
3         inet 192.168.13.11  netmask 255.255.255.0  broadcast 192.168.13.255
4         inet6 fe80::20c:29ff:fe1c:8b43  prefixlen 64  scopeid 0x20<link>
5         ether 00:0c:29:1c:8b:43  txqueuelen 1000  (Ethernet)
6         RX packets 271095  bytes 48234818 (46.0 MiB)
7         RX errors 0  dropped 0  overruns 0  frame 0
8         TX packets 129716  bytes 9264277 (8.8 MiB)
9         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

   

   rs也是一块网卡,后续vip配置在lo:0上即可但是需要先修改arp_ignore,arp_announce才能添加lo:0

   

1 [root@web2 ~]# ifconfig
2 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
3         inet 192.168.13.12  netmask 255.255.255.0  broadcast 192.168.13.255
4         inet6 fe80::3409:e73d:1ef:2e1  prefixlen 64  scopeid 0x20<link>
5         ether 00:0c:29:75:de:46  txqueuelen 1000  (Ethernet)
6         RX packets 291171  bytes 43500727 (41.4 MiB)
7         RX errors 0  dropped 0  overruns 0  frame 0
8         TX packets 84267  bytes 12274101 (11.7 MiB)
9         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@web3 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.13.13  netmask 255.255.255.0  broadcast 192.168.13.255inet6 fe80::3409:e73d:1ef:2e1  prefixlen 64  scopeid 0x20<link>inet6 fe80::9416:80e8:f210:1e24  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:79:23:62  txqueuelen 1000  (Ethernet)RX packets 281305  bytes 43019942 (41.0 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 88839  bytes 12307738 (11.7 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

  2、关闭防火墙

    

1       systemctl stop firewalld
2
3       systemctl disable firewalld
4
5       sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 

  3、安装软件

1       11上安装ipvsadm     
2         yum install ipvsadm -y
3       12、13安装httpd
4         yum install httpd -y

  4、配置web

    注意:arp_ignore 改为1的意义是,响应报文,请求报文从哪个地址进来的,就只能这个接口地址响应

       arp_announce 改为2的意义是,通知,不通告不同网段

 1 #修改web页面
 2       web2
 3
 4          echo "welcom to web2" >/var/www/html/index.html
 5
 6       web3
 7         echo "welcom to web3" >/var/www/html/index.html
 8 #启动与开机自启
 9          systemctl restart httpd
10          systemctl enable httpd
11 #修改内核参数,两台rs都修改
12   echo 1 > /porc/sys/net/ipv4/conf/all/arp_ignore
13   echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
14   echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore
15   echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
16   echo 2 > /proc/sys/net/ipv4/conf/ens33/arp_announce   #添加vip  ifconfig lo:0 192.168.13.100 broadcast 192.168.13.100 netmask 255.255.255.255 up
17 #添加默认路由,两台rs都修改,

18 route add -host 192.168.13.100 dev lo:0 

19 
  #ping 192.168.13.100 20 

ping 192.168.13.100 

21 #物理机查看mac地址没有变化,说明rs没有响应ok ,11和100的地址保持一致就是对的   物理机是windows10 cmd 命令行 arp -a 查看mac表22 arp -a 23 接口: 192.168.13.1 --- 0x16 

24  Internet 地址 物理地址 类型 

25 192.168.13.11 00-0c-29-1c-8b-43 动态 

26 192.168.13.12 00-0c-29-75-de-46 动态 

27 192.168.13.13 00-0c-29-79-23-62 动态 

28 192.168.13.14 00-0c-29-0f-ea-b4 动态 

29 192.168.13.100 00-0c-29-1c-8b-43 动态

    检查网络信息,web2举例,web3差不多就不贴上来了

 1 [root@web2 ~]# ifconfig
 2 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
 3         inet 192.168.13.12  netmask 255.255.255.0  broadcast 192.168.13.255
 4         inet6 fe80::3409:e73d:1ef:2e1  prefixlen 64  scopeid 0x20<link>
 5         ether 00:0c:29:75:de:46  txqueuelen 1000  (Ethernet)
 6         RX packets 291171  bytes 43500727 (41.4 MiB)
 7         RX errors 0  dropped 0  overruns 0  frame 0
 8         TX packets 84267  bytes 12274101 (11.7 MiB)
 9         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
10
11 lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
12         inet 127.0.0.1  netmask 255.0.0.0
13         inet6 ::1  prefixlen 128  scopeid 0x10<host>
14         loop  txqueuelen 1  (Local Loopback)
15         RX packets 1181  bytes 99767 (97.4 KiB)
16         RX errors 0  dropped 0  overruns 0  frame 0
17         TX packets 1181  bytes 99767 (97.4 KiB)
18         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
19
20 lo:0: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
21         inet 192.168.13.100  netmask 255.255.255.255
22         loop  txqueuelen 1  (Local Loopback)
23
24 virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
25         inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
26         ether 52:54:00:23:a5:7c  txqueuelen 1000  (Ethernet)
27         RX packets 0  bytes 0 (0.0 B)
28         RX errors 0  dropped 0  overruns 0  frame 0
29         TX packets 0  bytes 0 (0.0 B)
30         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
31
32 [root@web2 ~]# 

   

  5、配置director

    lvs-dr模式不需要开启地址转发,ip_forward功能,因为director发给rs的数据包是修改过的包,不是原包,不经过ip_forward转发,而是经过修改后的mac根据l路由决策直接路由到rip

 1 #ens33是另外一块网卡down掉,配置网卡别名,添加vip
 2  ifconfig ens33 down
 3  ifconfig ens37:0 192.168.13.100/24 broadcast 192.168.13.100 up
 4 #配置ipvsadm
 5 ipvsadm -C 清空
 6 #添加规则
 7  ipvsadm -A -t 192.168.13.100:80 -s rr
 8  ipvsadm -a -t 192.168.13.100:80 -r 192.168.13.12 -g
 9  ipvsadm -a -t 192.168.13.100:80 -r 192.168.13.13 -g
10 #查看规则
11 [root@web1 zhangxingeng]# ipvsadm -ln
12 IP Virtual Server version 1.2.1 (size=4096)
13 Prot LocalAddress:Port Scheduler Flags
14   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
15 TCP  192.168.13.100:80 rr
16   -> 192.168.13.12:80             Route   1      0          0
17   -> 192.168.13.13:80             Route   1      0          0         

    检查网络信息

    

[root@web1 ~]#  ifconfig
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.13.11  netmask 255.255.255.0  broadcast 192.168.13.255inet6 fe80::20c:29ff:fe1c:8b43  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:1c:8b:43  txqueuelen 1000  (Ethernet)RX packets 271095  bytes 48234818 (46.0 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 129716  bytes 9264277 (8.8 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens37:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.13.100  netmask 255.255.255.255  broadcast 192.168.13.100ether 00:0c:29:1c:8b:43  txqueuelen 1000  (Ethernet)lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1  (Local Loopback)RX packets 123187  bytes 11609729 (11.0 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 123187  bytes 11609729 (11.0 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255ether 52:54:00:23:a5:7c  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@web1 ~]# 

  6、测试结果

 1 [root@web4 ~]# curl 192.168.13.100
 2 welcom to web3
 3 [root@web4 ~]# curl 192.168.13.100
 4 welcom to web2
 5 [root@web4 ~]# curl 192.168.13.100
 6 welcom to web3
 7 [root@web4 ~]# curl 192.168.13.100
 8 welcom to web2
 9 [root@web4 ~]# curl 192.168.13.100
10 welcom to web3
11 [root@web4 ~]# curl 192.168.13.100
12 welcom to web2
13 [root@web4 ~]# curl 192.168.13.100
14 welcom to web3

#统计信息[root@web1 ~]# ipvsadm -ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes-> RemoteAddress:Port
TCP  192.168.13.100:80                  46      500        0    93970        0-> 192.168.13.12:80                   23      250        0    47616        0-> 192.168.13.13:80                   23      250        0    46354        0
[root@web1 ~]# 

 #连接条目 1 [root@web1 ~]# ipvsadm -lnc
 2 IPVS connection entries
 3 pro expire state       source             virtual            destination
 4 TCP 01:53  FIN_WAIT    192.168.13.163:48482 192.168.13.100:80  192.168.13.12:80
 5 TCP 01:54  FIN_WAIT    192.168.13.163:48488 192.168.13.100:80  192.168.13.13:80
 6 TCP 01:53  FIN_WAIT    192.168.13.163:48480 192.168.13.100:80  192.168.13.13:80
 7 TCP 14:56  ESTABLISHED 192.168.13.1:59343 192.168.13.100:80  192.168.13.13:80
 8 TCP 01:52  FIN_WAIT    192.168.13.163:48478 192.168.13.100:80  192.168.13.12:80
 9 TCP 01:54  FIN_WAIT    192.168.13.163:48490 192.168.13.100:80  192.168.13.12:80
10 TCP 01:53  FIN_WAIT    192.168.13.163:48484 192.168.13.100:80  192.168.13.13:80
11 TCP 01:53  FIN_WAIT    192.168.13.163:48486 192.168.13.100:80  192.168.13.12:80
12 TCP 15:01  ESTABLISHED 192.168.13.1:59344 192.168.13.100:80  192.168.13.12:80

 

转载请注明出处:https://www.cnblogs.com/zhangxingeng/p/10573695.html

转载于:https://www.cnblogs.com/zhangxingeng/p/10573695.html

Centos7+LVS-DR+Apache负载均衡web实验相关推荐

  1. LVS DR模式 负载均衡服务搭建

    LVS 负载均衡 最近在研究服务器负载均衡,阅读了网上的一些资料,发现主要的软件负载均衡方案有nginx(针对HTTP服务的负载均衡),LVS(针对IP层,MAC层的负载均衡).LVS模式工作在网络层 ...

  2. LVS DR模式负载均衡

    高并发场景 LVS 安装及高可用实现 分类: 运维基本功,故障解决 转载自 惨绿少年   https://www.cnblogs.com/clsn/p/7920637.html 1.1 负载均衡介绍 ...

  3. L部署lvs+keepalived实现负载均衡

    keepalived工作原理 keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障. keepalived是以VRRP协议为实现基础的,VRR ...

  4. 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡

    2019独角兽企业重金招聘Python工程师标准>>> 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部 ...

  5. LVS+Keepalived-DR模式负载均衡高可用集群

    LVS+Keepalived DR模式负载均衡+高可用集群架构图 工作原理: Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能. VRRP,虚拟路由冗余协议,是针对路由器的 ...

  6. 使用nginx+Apache负载均衡及动静分离

    使用nginx+Apache负载均衡及动静分离 介绍    LB负载均衡集群分两类: LVS (四层)和 nginx或haproxy (七层)    客户端都是通过访问分发器的VIP来访问网站 在七层 ...

  7. 借助LVS+Keepalived实现负载均衡

    一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务 ...

  8. 负载均衡集群 [ 1 ] ---集群的认识,四层负载,七层负载 ,LVS 实现四层负载均衡

    文章目录 负载均衡集群 1.集群是什么? 2.负载均衡集群技术 3.负载均衡集群技术的实现 4.负载均衡分类 5.四层负载均衡(基于IP+端口的负载均衡) 6.七层的负载均衡(基于虚拟的URL或主机I ...

  9. LVS原理详解及部署之五:LVS+keepalived实现负载均衡高可用

    本文我们主要讲解的是LVS通过keepalived来实现负载均衡和高可用,而不是我们第三篇文章介绍的通过手动的方式来进行配置.通过脚本的方式来显示RS节点的健康检查和LVS的故障切换.此文会通过一个实 ...

  10. JBOSS通过Apache负载均衡方法一:使用mod_jk

    JBOSS通过Apache负载均衡方法一:使用mod_jk   本文第一.二节分别对Linux环境下前端使用Apache以及windows环境下前端使用IIS通过AJP协议和后端的JBOSS通信实现负 ...

最新文章

  1. 专题解读 |「知识图谱」领域近期值得读的 6 篇顶会论文
  2. 零基础不建议学前端_web前端开发零基础怎样入门-哈尔滨前端学习
  3. python调用libvirt_通过python获取kvm虚拟机的监控信息(基于libvirt API)
  4. 三分钟带你分清Mysql 和Oracle之间的误区
  5. 创建 JavaScript 对象
  6. maven常见问题归纳
  7. 魔方层先法简明图解,最少记6个公式即可完成魔方六面
  8. nginx allow 多个ip ipv4的网段表示方法解析
  9. cvMatchTemplate() 模板匹配
  10. 锐起无盘安装图文教程
  11. 何宾 单片机原理及应用_stc单片机原理及应用.pdf
  12. 三极管的导通条件总结
  13. 内与外的困惑:找出System进程占用100%CPU的元凶
  14. 儿科常见疾病的中成药疗法
  15. JAVA基础---集合(一)--集合框架概述
  16. 计算机房无管网消防中七氟丙烷的药剂用量
  17. rust语言与go语言_用户调查显示,Rust语言很难学习和使用
  18. QTableWidget 常见用法总结(一)
  19. 微信小程序 录音功能
  20. reids数据导出导入

热门文章

  1. alter table 加多个字段_多个单列索引和联合索引的区别详解
  2. 认识Hibernate
  3. JD_Source Code for problem 1379
  4. 【NeurIPS 2019】最大熵的蒙特卡洛规划算法
  5. Linux系统是否被植入木马的排查流程梳理
  6. 数据类型之集合 set 运算关系
  7. [ POI 2005 ] Bank Notes
  8. SCP对拷如何连接指定端口远程主机
  9. 2017.6.26 接口测试工具postman使用总结
  10. PHP无限极分类巧用引用生成树