zoukankan      html  css  js  c++  java
  • LVS搭建负载均衡(二)DR模型

    应用场景:LVS配置负载均衡方式之一:dr

    测试环境

          

          

    配置步骤

      1. 在主机lvs上安装ipvsadm

        ~]# yum install ipvsadm -y

        ~]# ipvsadm    //启动;该命令由ipvsadm软件生成

        ~]# lsmod |grep ip_vs  //查看有无输出,若有,代表成功

         

      2. 新建配置脚本

        ~]# vim lvs-dr.sh

    #!/bin/bash
    VIP=138.138.82.222
    RIP1=138.138.82.12
    RIP2=138.138.82.13
    /etc/rc.d/init.d/functions
    case "$1" in
    start)
               echo "start LVS of DirectorServer DR" 
               /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.0 up
               /sbin/route add -host $VIP dev eth0:0
               #echo "1" >/proc/sys/net/ipv4/ip_forward      ##说明:dr模式不必开启ip转发
               /sbin/ipvsadm -C                    ##可先清空一下
               /sbin/ipvsadm -A -t $VIP:80 -s rr          ##这里测试的rr:轮询算法
               /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
               /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
               /sbin/ipvsadm
           ;;
    stop)
               echo "stop LVS of DirectorServer DR" 
               #echo "0" >/proc/sys/net/ipv4/ip_forward    ##说明:同上
               /sbin/ipvsadm -C
               /sbin/ifconfig eth0:0 down
               ;;
    *)
              echo "Usage: $0 {start|stop}" 
              exit 1
    esac
    exit 0

      保存,退出;

      3. 运行脚本

        ~]# sh lvs-dr.sh start    //启动,出现如下显示代表正常

         

       4. 配置后端的web服务器(两台Nginx,搭建略)

        在web端的操作总结起来两点:

        绑定VIP至lo接口

        抑制RS(Real Server,此处值得两台Nginx)的arp帧

    #!/bin/bash 
    VIP=138.138.82.222
    /etc/rc.d/init.d/functions
    case "$1" in
    start)
               echo "start LVS of RealServer DR" 
               /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
               /sbin/route add -host $VIP dev lo:0
               echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
               echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
               echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
               echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
           ;;
    stop)
               /sbin/ifconfig lo:0 down
               echo "close LVS of RealServer DR" 
               echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
               echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
               echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
               echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
               ;;
    
    *)
              echo "Usage: $0 {start|stop}" 
              exit 1
    esac
    exit 0

      保存,退出;

      在Nginx-a和Nginx-b上依次执行该脚本,可以查看下接口:

      ~]# ifconfig  或者  ~]# ip a

       

      5测试

        经测试,在lvs该主机上直接curl是不能获取页面的,这里在另外一台机器上执行以下测试命令:

        ~]# while true; do curl 138.138.82.222; sleep 1; done

         

    结束.

  • 相关阅读:
    [2013-08-19] nohup的使用
    HttpParser 相关链接文章
    CKEditor禁用浏览服务器的功能
    (转载)MySQL删除所有表的外键约束、禁用外键约束
    js Object扩展自定义方法,jQuery抛出 Uncaught TypeError: matchExpr[type].exec is not a function
    Javascript 占位符替换
    Springboot 抛出Failed to determine a suitable driver class异常原因
    jpa CriteriaQueryNo explicit selection and an implicit one could not be determined
    Spring ModelAttribute注解失效原因
    Spring Data Jpa 更新操作
  • 原文地址:https://www.cnblogs.com/ding2016/p/7220457.html
Copyright © 2011-2022 走看看