一、简介

  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实验的更多相关文章

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

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

  2. CentOS下LVS DR模式负载均衡配置详解

    一安装LVS准备: 1.准备4台Centos 6.2 x86_64 注:本实验关闭 SELinux和IPtables防火墙. 管理IP地址 角色 备注 192.168.1.101 LVS主调度器(Ma ...

  3. Keepalived+LVS 实现高负载均衡Web集群

    一.原理及简介: 1.1 Keepalived简介      Keepalived是Linux下一个轻量级别的高可用解决方案.Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节 ...

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

    虽然现在云手段很高明了.但是这个lvs + keepalive 还是需要了解下的. 今天就整理了下lvs和keepalive的东西.做下总结留作以后怀念 在实际应用中,在Web服务器集群之前总会有一台 ...

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

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

  6. 借助LVS+Keepalived实现负载均衡(转)

    原文:http://www.cnblogs.com/edisonchou/p/4281978.html 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务 ...

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

    原文地址:http://www.cnblogs.com/edisonchou/p/4281978.html 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了 ...

  8. 借助LVS+Keepalived实现负载均衡(转)

    出处:http://www.cnblogs.com/edisonchou/p/4281978.html 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务 ...

  9. LVS+keepalived搭建负载均衡

    安装环境:环境 centos4.4 LB:192.168.2.158(VIP:192.168.2.188) real-server1:192.168.2.187 real-server2:192.16 ...

随机推荐

  1. ELK 架构之 Elasticsearch、Kibana、Logstash 和 Filebeat 安装配置汇总(6.2.4 版本)

    相关文章: ELK 架构之 Elasticsearch 和 Kibana 安装配置 ELK 架构之 Logstash 和 Filebeat 安装配置 ELK 架构之 Logstash 和 Filebe ...

  2. spss汉化详解

    今天写一下关于SPSS的汉化以及激活码 下载spss: 安装过程比较简单,主要就是激活码: 9DNCAF2O3QVDV7FBIO696OO6GWLNXZPPRYTPWF2PPX7C8T6Y24LMVV ...

  3. eclipse 内存优化

    eclipse.ini配置如下: -Dfile.encoding=UTF-8-Xms512m-Xmx512m-Xmn170m-Xverify:none 注意-Xmn是-Xmx的三分之一关系 可以根据自 ...

  4. 基于 ReactJS 开发简单的可视化业务编辑器 01

    线上可以看的,跟github上的代码不一样的:https://whensea.com/wfd/ 程序中经常有一些业务需要定制化,我定制化这些业务的方式主要是基于工作流.配置等方式.由于个人水平限制并不 ...

  5. Zabbix-server 3.4 安装详细和修改web界面中文出现的乱码(一)

    1. 老套路先来个Zabbix简介: Zabbix是一个企业级的.开源的.分布式的监控套件: Zabbix可以监控网络和服务的监控状况. Zabbix利用灵活的告警机制,允许用户对事件发送Email. ...

  6. asp.net core系列 58 IS4 基于浏览器的JavaScript客户端应用程序

    一. 概述 本篇探讨使用"基于浏览器的JavaScript客户端应用程序".与上篇实现功能一样,只不过这篇使用JavaScript作为客户端程序,而非core mvc的后台代码Ht ...

  7. Java工程师修炼之路(校招总结)

    Java工程师修炼之路(校招总结) 前言 在下本是跨专业渣考研的985渣硕一枚,经历研究生两年的学习积累,有幸于2019秋季招聘中拿到几个公司的研发岗offer,包括百度,阿里,腾讯,今日头条,网易, ...

  8. spring JdbcTemplate 在itest 开源测试管理项目中的浅层(5个使用场景)封装

    导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景, 在做项目的时候,用的JPA ,有些复杂查询,比如报表用原生的JdbcTemplate ,很不方便;传参也不方便 ...

  9. 如何理解Axis?

    前言 只有光头才能变强. 回顾前面: 从零开始学TensorFlow[01-搭建环境.HelloWorld篇] 什么是TensorFlow? TensorFlow读写数据 不知道大家最开始接触到axi ...

  10. 卷积神经网络之LeNet

    开局一张图,内容全靠编. 上图引用自 [卷积神经网络-进化史]从LeNet到AlexNet. 目前常用的卷积神经网络 深度学习现在是百花齐放,各种网络结构层出不穷,计划梳理下各个常用的卷积神经网络结构 ...