Centos7+LVS-DR+Apache负载均衡web实验
一、简介
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使用别名即可,别着急,在后面具体配置上
[root@web1 ~]# ifconfig
ens37: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.13.11 netmask 255.255.255.0 broadcast 192.168.13.255
inet6 fe80::20c:29ff:fe1c:8b43 prefixlen scopeid 0x20<link>
ether :0c::1c:8b: txqueuelen (Ethernet)
RX packets bytes (46.0 MiB)
RX errors dropped overruns frame
TX packets bytes (8.8 MiB)
TX errors dropped overruns carrier collisions
rs也是一块网卡,后续vip配置在lo:0上即可但是需要先修改arp_ignore,arp_announce才能添加lo:0
[root@web2 ~]# ifconfig
ens33: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.13.12 netmask 255.255.255.0 broadcast 192.168.13.255
inet6 fe80:::e73d:1ef:2e1 prefixlen scopeid 0x20<link>
ether :0c:::de: txqueuelen (Ethernet)
RX packets bytes (41.4 MiB)
RX errors dropped overruns frame
TX packets bytes (11.7 MiB)
TX errors dropped overruns carrier collisions
[root@web3 ~]# ifconfig
ens33: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.13.13 netmask 255.255.255.0 broadcast 192.168.13.255
inet6 fe80:::e73d:1ef:2e1 prefixlen scopeid 0x20<link>
inet6 fe80:::80e8:f210:1e24 prefixlen scopeid 0x20<link>
ether :0c:::: txqueuelen (Ethernet)
RX packets bytes (41.0 MiB)
RX errors dropped overruns frame
TX packets bytes (11.7 MiB)
TX errors dropped overruns carrier collisions
2、关闭防火墙
systemctl stop firewalld systemctl disable firewalld sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
3、安装软件
11上安装ipvsadm
yum install ipvsadm -y
、13安装httpd
yum install httpd -y
4、配置web
注意:arp_ignore 改为1的意义是,响应报文,请求报文从哪个地址进来的,就只能这个接口地址响应
arp_announce 改为2的意义是,通知,不通告不同网段
#修改web页面
web2 echo "welcom to web2" >/var/www/html/index.html web3
echo "welcom to web3" >/var/www/html/index.html
#启动与开机自启
systemctl restart httpd
systemctl enable httpd
#修改内核参数,两台rs都修改
echo > /porc/sys/net/ipv4/conf/all/arp_ignore
echo > /proc/sys/net/ipv4/conf/all/arp_ignore
echo > /proc/sys/net/ipv4/conf/ens33/arp_ignore
echo > /proc/sys/net/ipv4/conf/all/arp_announce
echo > /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
#添加默认路由,两台rs都修改, route add -host 192.168.13.100 dev lo:
#ping 192.168.13.100 ping 192.168.13.100 #物理机查看mac地址没有变化,说明rs没有响应ok ,11和100的地址保持一致就是对的
物理机是windows10 cmd 命令行 arp -a 查看mac表
arp -a
2 接口: 192.168.13.1 --- 0x16 Internet 地址 物理地址 类型 192.168.13.11 00-0c-29-1c-8b-43 动态 192.168.13.12 -0c---de- 动态 192.168.13.13 -0c---- 动态 192.168.13.14 -0c--0f-ea-b4 动态 192.168.13.100 00-0c-29-1c-8b-43 动态
检查网络信息,web2举例,web3差不多就不贴上来了
[root@web2 ~]# ifconfig
ens33: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.13.12 netmask 255.255.255.0 broadcast 192.168.13.255
inet6 fe80:::e73d:1ef:2e1 prefixlen scopeid 0x20<link>
ether :0c:::de: txqueuelen (Ethernet)
RX packets bytes (41.4 MiB)
RX errors dropped overruns frame
TX packets bytes (11.7 MiB)
TX errors dropped overruns carrier collisions lo: flags=<UP,LOOPBACK,RUNNING> mtu
inet 127.0.0.1 netmask 255.0.0.0
inet6 :: prefixlen scopeid 0x10<host>
loop txqueuelen (Local Loopback)
RX packets bytes (97.4 KiB)
RX errors dropped overruns frame
TX packets bytes (97.4 KiB)
TX errors dropped overruns carrier collisions 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) virbr0: flags=<UP,BROADCAST,MULTICAST> mtu
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether ::::a5:7c txqueuelen (Ethernet)
RX packets bytes (0.0 B)
RX errors dropped overruns frame
TX packets bytes (0.0 B)
TX errors dropped overruns carrier collisions [root@web2 ~]#
5、配置director
lvs-dr模式不需要开启地址转发,ip_forward功能,因为director发给rs的数据包是修改过的包,不是原包,不经过ip_forward转发,而是经过修改后的mac根据l路由决策直接路由到rip
1 #ens33是另外一块网卡down掉,配置网卡别名,添加vip
ifconfig ens33 down
ifconfig ens37: 192.168.13.100/ broadcast 192.168.13.100 up
4 #配置ipvsadm
ipvsadm -C 清空
6 #添加规则
ipvsadm -A -t 192.168.13.100: -s rr
ipvsadm -a -t 192.168.13.100: -r 192.168.13.12 -g
ipvsadm -a -t 192.168.13.100: -r 192.168.13.13 -g
10 #查看规则
[root@web1 zhangxingeng]# ipvsadm -ln
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.13.100: rr
-> 192.168.13.12: Route
-> 192.168.13.13: Route
检查网络信息
[root@web1 ~]# ifconfig
ens37: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.13.11 netmask 255.255.255.0 broadcast 192.168.13.255
inet6 fe80::20c:29ff:fe1c:8b43 prefixlen scopeid 0x20<link>
ether :0c::1c:8b: txqueuelen (Ethernet)
RX packets bytes (46.0 MiB)
RX errors dropped overruns frame
TX packets bytes (8.8 MiB)
TX errors dropped overruns carrier collisions ens37:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.13.100 netmask 255.255.255.255 broadcast 192.168.13.100
ether 00:0c:29:1c:8b:43 txqueuelen 1000 (Ethernet) lo: flags=<UP,LOOPBACK,RUNNING> mtu
inet 127.0.0.1 netmask 255.0.0.0
inet6 :: prefixlen scopeid 0x10<host>
loop txqueuelen (Local Loopback)
RX packets bytes (11.0 MiB)
RX errors dropped overruns frame
TX packets bytes (11.0 MiB)
TX errors dropped overruns carrier collisions virbr0: flags=<UP,BROADCAST,MULTICAST> mtu
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether ::::a5:7c txqueuelen (Ethernet)
RX packets bytes (0.0 B)
RX errors dropped overruns frame
TX packets bytes (0.0 B)
TX errors dropped overruns carrier collisions [root@web1 ~]#
6、测试结果

[root@web4 ~]# curl 192.168.13.100
welcom to web3
[root@web4 ~]# curl 192.168.13.100
welcom to web2
[root@web4 ~]# curl 192.168.13.100
welcom to web3
[root@web4 ~]# curl 192.168.13.100
welcom to web2
[root@web4 ~]# curl 192.168.13.100
welcom to web3
[root@web4 ~]# curl 192.168.13.100
welcom to web2
[root@web4 ~]# curl 192.168.13.100
welcom to web3
#统计信息
[root@web1 ~]# ipvsadm -ln --stats
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.13.100:
-> 192.168.13.12:
-> 192.168.13.13:
[root@web1 ~]#
#连接条目
1 [root@web1 ~]# ipvsadm -lnc
IPVS connection entries
pro expire state source virtual destination
TCP : FIN_WAIT 192.168.13.163: 192.168.13.100: 192.168.13.12:
TCP : FIN_WAIT 192.168.13.163: 192.168.13.100: 192.168.13.13:
TCP : FIN_WAIT 192.168.13.163: 192.168.13.100: 192.168.13.13:
TCP : ESTABLISHED 192.168.13.1: 192.168.13.100: 192.168.13.13:
TCP : FIN_WAIT 192.168.13.163: 192.168.13.100: 192.168.13.12:
TCP : FIN_WAIT 192.168.13.163: 192.168.13.100: 192.168.13.12:
TCP : FIN_WAIT 192.168.13.163: 192.168.13.100: 192.168.13.13:
TCP : FIN_WAIT 192.168.13.163: 192.168.13.100: 192.168.13.12:
TCP : ESTABLISHED 192.168.13.1: 192.168.13.100: 192.168.13.12:
转载请注明出处:https://www.cnblogs.com/zhangxingeng/p/10573695.html
Centos7+LVS-DR+Apache负载均衡web实验的更多相关文章
- LVS DR模式 负载均衡服务搭建
LVS 负载均衡 最近在研究服务器负载均衡,阅读了网上的一些资料,发现主要的软件负载均衡方案有nginx(针对HTTP服务的负载均衡),LVS(针对IP层,MAC层的负载均衡).LVS模式工作在网络层 ...
- CentOS下LVS DR模式负载均衡配置详解
一安装LVS准备: 1.准备4台Centos 6.2 x86_64 注:本实验关闭 SELinux和IPtables防火墙. 管理IP地址 角色 备注 192.168.1.101 LVS主调度器(Ma ...
- Keepalived+LVS 实现高负载均衡Web集群
一.原理及简介: 1.1 Keepalived简介 Keepalived是Linux下一个轻量级别的高可用解决方案.Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节 ...
- 借助 LVS + Keepalived 实现负载均衡
虽然现在云手段很高明了.但是这个lvs + keepalive 还是需要了解下的. 今天就整理了下lvs和keepalive的东西.做下总结留作以后怀念 在实际应用中,在Web服务器集群之前总会有一台 ...
- 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡
一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务 ...
- 借助LVS+Keepalived实现负载均衡(转)
原文:http://www.cnblogs.com/edisonchou/p/4281978.html 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务 ...
- 借助LVS+Keepalived实现负载均衡
原文地址:http://www.cnblogs.com/edisonchou/p/4281978.html 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了 ...
- 借助LVS+Keepalived实现负载均衡(转)
出处:http://www.cnblogs.com/edisonchou/p/4281978.html 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务 ...
- LVS+keepalived搭建负载均衡
安装环境:环境 centos4.4 LB:192.168.2.158(VIP:192.168.2.188) real-server1:192.168.2.187 real-server2:192.16 ...
随机推荐
- BZOJ_3477_[Usaco2014 Mar]Sabotage_二分答案
BZOJ_3477_[Usaco2014 Mar]Sabotage_二分答案 题意: 约翰的牧场里有 N 台机器,第 i 台机器的工作能力为 Ai.保罗阴谋破坏一些机器,使得约翰的工作效率变低.保罗可 ...
- Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控
在大型网站系统设计中,随着分布式架构,特别是微服务架构的流行,我们将系统解耦成更小的单元,通过不断的添加新的.小的模块或者重用已经有的模块来构建复杂的系统.随着模块的不断增多,一次请求可能会涉及到十几 ...
- Python全国二级等级考试(2019)
一.前言 2018年9月随着全国计算机等级考试科目中加入“二级Python”,也确立了Python在国内的地位,猪哥相信Python语言势必会像PS那般普及.不久的将来,谁会Python谁就能获得女神 ...
- 学习JVM是如何从入门到放弃的?
前言 只有光头才能变强 JVM在准备面试的时候就有看了,一直没时间写笔记.现在到了一家公司实习,闲的时候就写写,刷刷JVM博客,刷刷电子书. 学习JVM的目的也很简单: 能够知道JVM是什么,为我们干 ...
- spring源码 — 四、MVC
spring mvc是怎么实现的?为什么我们只需要在方法上写一个注解,就可以通过http访问这个接口?下面我们分3部分来解答这两个问题 注意:本文是基于spring4.3.2的 spring mvc整 ...
- C#工具:WebAPI常见问题及解决方案
Web.config中连接字符串配置问题解决方法:<ConnectionStrings>中<add>的providerName写错正确写法:providerName=" ...
- C#采用vony.Html.AIO插件批量爬MM网站图片
一.创建项目 1.创建一个.netframework的控制台项目命名为Crawler 2.安装nuget包搜索名称Ivony.Html.AIO,使用该类库什么方便类似jqury的选择器可以根据类名或者 ...
- Java之Spring mvc详解
文章大纲 一.Spring mvc介绍二.Spring mvc代码实战三.项目源码下载四.参考文章 一.Spring mvc介绍 1. 什么是springmvc springmvc是sprin ...
- 使用redis 中的事务处理实现商品秒杀
redis中的事务处理: redis中的事物事物处理是指能够批量的执行一组命令(当事务开始执行时,事务中的命令能够按照按照规定好的顺序执行而不会被插队或打断): 与mysql事务的区别在于:mysql ...
- Dynamics 365 CE在Pre Delete插件中应用Image
微软动态CRM专家罗勇 ,回复327或者20190428可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 在插件中限制记录的删除是常见的场景,比如根据statuscode ...
