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

         

    结束.

  • 相关阅读:
    node连接数据库(express+mysql)
    Apache与Tomcat有什么关系和区别
    tomcat部署简单的html静态网页
    Vue项目webpack打包部署到服务器
    windows下vue+webpack前端开发环境搭建及nginx部署
    DIV 边框重叠 像素变粗 解决办法
    基于iscroll实现下拉和上拉刷新
    css图片居中(水平居中和垂直居中)
    nodejs分页类
    事件--键盘事件
  • 原文地址:https://www.cnblogs.com/ding2016/p/7220457.html
Copyright © 2011-2022 走看看