一、简介

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

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

  2、LVS-NAT优缺点复习

    

    关于这种模式

    1、RIP和DIP一般处于同一私有网段中。但并非必须,RS的网关要指向DIP,这样能保证将响应数据交给Director

    2、支持端口映射,可修改请求报文的目标端口;

    3、VS/NAT模式的最大缺点使Director负责所有进出数据:不仅处理客户端发起的请求,还负责将响应传输给客户端。而响应数据一般比请求数据大得多,调度器Director容易出现瓶颈。(也就是像7层负载的处理方式一样,但却没有7层负载那么多功能)

    4、vs必须使linux系统,RS可以是任何系统

    缺点:在整个过程中,所有输入输出的流量都要经过LVS调度器,调度器网络I/O压力就会非常大,因此很容易称为瓶颈,特别使对请求流量很小,而响应流量很大的web类应用来说更为如此;

    优点:NAT模式配置管理简单,由于使用了NAT技术,LVS调度器及应用服务器可以在不同网段中,网络架构灵活,应用服务器只需要进行简单的网络设定即可加入集群。

  3、实验拓扑

    

     说明:虚拟机做实验有关网段的设计,Director调度器需要配置两块网卡,我们CIP和VIP可以用NAT模式,DIP、RS、NFS可以用仅主机模式。

二、开始部署

    1、网络配置

      添加网卡后别忘了点击设备状态“已连接”

 [root@web1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens37
TYPE="Ethernet"
3 BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens37"
UUID="4f788070-131a-4f10-85a8-179b4f14gg48"
DEVICE="ens37"
ONBOOT="yes"
15 DNS1=192.168.13.2
16 IPADDR=192.168.13.11
#PREFIX=
18 GATEWAY=192.168.13.2
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
~
[root@web1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
24 BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="4f788080-131a-4f10-85a8-179b4f14ab48"
DEVICE="ens33"
ONBOOT="yes"
36 DNS1=192.168.216.2
37 IPADDR=192.168.216.51
PREFIX=
39 GATEWAY=192.168.216.2
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
#在添加一块网卡后,没有网卡设置,请按照自己得ip自行配制即可
 [root@web1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens37 
TYPE="Ethernet"
44 BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
52 NAME="ens37"
UUID="4f788070-131a-4f10-85a8-179b4f14gg48"
54 DEVICE="ens37"
ONBOOT="yes"
56 DNS1=192.168.13.2
57 IPADDR=192.168.13.11
58 #PREFIX=24
59 GATEWAY=192.168.13.2
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

    2、关闭防火墙及selinux

       systemctl stop firewalld

       systemctl disable firewalld

       sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 

    3、安装软件

       51上安装ipvsadm     
2        yum install ipvsadm -y
3       、13安装httpd
4         yum install httpd -y
5       14上安装nfs,rpcbind
6         yum install nfs-utils rpcbind -y  

  

    4、配置web2、web3的网关改为192.168.13.11

       web2

         echo "welcom to web2" >/var/www/html/index.html

       web3
        echo "welcom to web3" >/var/www/html/index.html
      两台同时配置网关
            响应报文的目标地址是CIP,所以RS网关需要执行Director的DIP

          
        route add default gw 192.168.13.11
        systemctl restart httpd
        systemctl enable httpd
      

    5、配置director调度器

       

       

       开启转发功能
          director接收到CIP的数据包,需要转发给RS处理,接着VIP收到数据需要转发DIP,所以需要开启转发功能

        echo > /proc/sys/net/ipv4/ip_forward       配置负载调度器SNAT转发规则
        ipvsadm -A -t 192.168.216.51: -s rr
        ipvsadm -a -t 192.168.216.51: -r 192.168.13.12: -m -w
        ipvsadm -a -t 192.168.216.51: -r 192.168.13.13: -m -w
      检查规则
        ipvsadm -Ln              [root@web1 ~]# ipvsadm -Ln
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.216.51: rr
-> 192.168.13.12: Masq
-> 192.168.13.13: Masq
[root@web1 ~]#

    6、测试功能

      director调度器上基本测试

        ping两台RS,并访问web

 [root@web1 ~]# ping 192.168.13.12
PING 192.168.13.12 (192.168.13.12) () bytes of data.
bytes from 192.168.13.12: icmp_seq= ttl= time=0.683 ms
bytes from 192.168.13.12: icmp_seq= ttl= time=2.15 ms
^C
--- 192.168.13.12 ping statistics ---
packets transmitted, received, % packet loss, time 1001ms
rtt min/avg/max/mdev = 0.683/1.418/2.153/0.735 ms
[root@web1 ~]# ping 192.168.13.13
PING 192.168.13.13 (192.168.13.13) () bytes of data.
bytes from 192.168.13.13: icmp_seq= ttl= time=0.654 ms
bytes from 192.168.13.13: icmp_seq= ttl= time=0.589 ms
^C
--- 192.168.13.13 ping statistics ---
packets transmitted, received, % packet loss, time 1000ms
rtt min/avg/max/mdev = 0.589/0.621/0.654/0.040 ms
[root@web1 ~]# curl 192.168.13.12
welcom to web2
[root@web1 ~]# curl 192.168.13.13
20 welcom to web3
[root@web1 ~]#

      client上访问192.168.216.51

 [root@web5 ~]# curl 192.168.216.51
welcom to web3
[root@web5 ~]# curl 192.168.216.51
welcom to web2
[root@web5 ~]# curl 192.168.216.51
welcom to web3
[root@web5 ~]# curl 192.168.216.51
welcom to web2

    7、配置后端共享存储NFS

      前面已经安装了程序包这里只需要配置

 #设置共享目录,权限
[root@web4 cdrom]# mkdir -p /data/www/
[root@web4 cdrom]# vim /etc/exports
/data/www 192.168.13.0/(ro,sync,no_root_squash)
#设置index.html文件
[root@web4 cdrom]# cd /data/www/
[root@web4 www]# echo "this is www data" index.html
#启动并开机自启
[root@web4 cdrom]# systemctl start rpcbind
[root@web4 cdrom]# systemctl start nfs
[root@web4 cdrom]# systemctl enable rpcbind
[root@web4 cdrom]# systemctl enable nfs
#查看可挂载目录,13网段其他机器也可以使用测试
[root@web4 www]# showmount -e 192.168.13.14
Export list for 192.168.13.14:
/data/www 192.168.13.0/

      测试

        web2、web3执行挂载

      

 [root@web2 yum.repos.d]# showmount -e 192.168.13.14
Export list for 192.168.13.14:
/data/www 192.168.13.0/
[root@web2 yum.repos.d]# mount 192.168.13.14:/data/www /var/www/html

        client测试

 root@web5 ~]# curl 192.168.216.51
this is www data
[root@web5 ~]# curl 192.168.216.51
this is www data
[root@web5 ~]# curl 192.168.216.51
this is www data
[root@web5 ~]# curl 192.168.216.51
this is www data
[root@web5 ~]# curl 192.168.216.51
this is www data
[root@web5 ~]# curl 192.168.216.51
this is www data

      调度器上可以看到统计信息及连接条目

 [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.216.51:
-> 192.168.13.12:
-> 192.168.13.13:
[root@web1 ~]# ipvsadm -lnc #连接条目
IPVS connection entries
pro expire state source virtual destination
TCP : TIME_WAIT 192.168.216.55: 192.168.216.51: 192.168.13.12:
TCP : TIME_WAIT 192.168.216.55: 192.168.216.51: 192.168.13.12:
TCP : TIME_WAIT 192.168.216.55: 192.168.216.51: 192.168.13.12:
TCP : TIME_WAIT 192.168.216.55: 192.168.216.51: 192.168.13.13:
TCP : TIME_WAIT 192.168.216.55: 192.168.216.51: 192.168.13.13:
TCP : TIME_WAIT 192.168.216.55: 192.168.216.51: 192.168.13.12:
TCP : TIME_WAIT 192.168.216.55: 192.168.216.51: 192.168.13.13:
[root@web1 ~]#

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

      

            

      

    

    

Centos7+LVS-NAT+apache实验的更多相关文章

  1. LVS/NAT 配置

    LVS/NAT 配置 实验环境 三台主机:Linux Centos 6.4 32位 调度器Director:192.168.1.160(内网IP).192.168.2.20(公网IP) HTTP真实服 ...

  2. 负载均衡集群介绍、LVS介绍、LVS调度算法、LVS NAT模式搭建

    7月4日任务 18.6 负载均衡集群介绍18.7 LVS介绍18.8 LVS调度算法18.9/18.10 LVS NAT模式搭建 扩展lvs 三种模式详解 http://www.it165.net/a ...

  3. Linux centosVMware 负载均衡集群介绍、LVS介绍、LVS调度算法、LVS NAT模式搭建

    一.负载均衡集群介绍 主流开源软件LVS.keepalived.haproxy.nginx等 其中LVS属于4层(网络OSI 7层模型),nginx属于7层,haproxy既可以认为是4层,也可以当做 ...

  4. LVS DR模式实验

    LVS DR模式实验 三台虚拟机,两个台节点机(Apache),一台DR实验调度机 一:关闭相关安全机制 systemctl stop firewalld iptables -F setenforce ...

  5. LVS NAT模型

    1,环境 VMWare10, CentOS6.3 2,LVS NAT网络规划 可以看到Director机器有2个IP,也就是说需要2张网卡:Real Server只需要一个网卡. VIP: 虚拟IP, ...

  6. CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡【转】

    CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡   一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2 ...

  7. centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课

    centos   LB负载均衡集群 三种模式区别 LVS/NAT 配置  LVS/DR 配置  LVS/DR + keepalived配置  nginx ip_hash 实现长连接  LVS是四层LB ...

  8. Vmware虚拟机配置LVS/NAT模式遇到的坑。

    这两天在研究LVS的负载均衡,先从最简单的LVS/NAT模式开始入手. 最后配置完之后能够相互之间Ping通,并且能够直接访问real服务器提供的web服务,而且防火墙也已经关闭了. 但是通过访问LV ...

  9. 负载均衡集群相关、LVS介绍、LVS调度算法、LVS NAT模式搭建

    1.负载均衡集群相关 2.LVS的三种模式:NAT.DR .IP tunnel 3. LVS的调度算法(共有8种) 4.LVS NAT模式搭建准备条件:   在分发服务器上安装:yum install ...

  10. Centos7安装配置Apache+PHP+Mysql+phpmyadmin

    转载自: Centos7安装配置Apache+PHP+Mysql+phpmyadmin 一.安装Apache yum install httpd 安装成功后,Apache操作命令: systemctl ...

随机推荐

  1. C#多线程中的异常处理

    常规Thread中处理异常 使用Thread创建的子线程,需要在委托中捕捉,无法在上下文线程中捕捉 static void Main(string[] args) { ThreadStart thre ...

  2. Jmeter----A接口response中body的某一个参数传递给B接口request的body中使用(参数的传递)

    示例:将接口"获取待办列表"response中body的id值传递给接口"删除待办"request的body中使用: 操作步骤如下: 第一步:给"获取 ...

  3. validatebox相关验证

    $(document).ready( function(){ $.extend($.fn.validatebox.defaults.rules, { minLength: { validator: f ...

  4. 【SAP HANA】新建表以及操作数据(3)

    账号和数据库都创建好之后,接下来就可以创建表了.来见识一下这个所谓“列式”存储方式的表是长啥样的! 一.可视化新建表 然后输入所需栏位,设置好类型和长度: 上图右上角可以看到类型是Column Sto ...

  5. java 基本类型包装类,system类,Math类,Assrays类,大数据运算

    实现字符串与基本数据之间转换 将字符串转成基本数据类型方法 例如:将字符串转成成int类型 String str ="123"; int a =Integer.parseInt(s ...

  6. 浅析JavaScript解析赋值、浅拷贝和深拷贝的区别

    文章首发于sau交流学习社区 一.赋值(Copy) 赋值是将某一数值或对象赋给某个变量的过程,分为: 1.基本数据类型:赋值,赋值之后两个变量互不影响 2.引用数据类型:赋**址**,两个变量具有相同 ...

  7. 【填坑纪事】一次用System.nanoTime()填坑System.currentTimeMills()的实例记录

    JDK提供了两个方法,System.currentTimeMillis()和System.nanoTime(),这两个方法都可以用来获取表征当前时间的数值.但是如果不仔细辨别这两个方法的差别和联系,在 ...

  8. Spring:(二)DI依赖注入方式

    DI 依赖注入 DI(Dependency Injection)依赖注入,说简单一点就将类里面的属性在创建类的过程中给属性赋值,即将对象依赖属性(简单值,集合,对象)通过配置设值给该对象. 属性注入的 ...

  9. RabbitMQ死信队列另类用法之复合死信

    前言 在业务开发过程中,我们常常需要做一些定时任务,这些任务一般用来做监控或者清理任务,比如在订单的业务场景中,用户在创建订单后一段时间内,没有完成支付,系统将自动取消该订单,并将库存返回到商品中,又 ...

  10. easyui表格自动换行

    表格内容自动换行可以通过设计表格属性  nowrap:false来实现,默认值为true: 但是easyui并未提供,表头自动换行的解决方案,因为一般我们的数据表格列名都是固定的,想换行的话可以通过& ...