lvs负载均衡(DR模式)

系统环境:
lvs+keepalived
centos7.5 ip:192.168.1.157 vip:192.168.1.150(主)
centos7.5 ip:192.168.1.153 vip:192.168.1.150(备)

lvs
centos7.5 ip:192.168.1.161 vip:192.168.1.150

真实主机
centos7.5 ip:192.168.1.155 vip:192.168.1.150
centos7.5 ip:192.168.1.154 vip:192.168.1.150

客户机
windown7 ip:192.168.1.156

查看版本信息命令
内核信息:uname -a (uname -r)
发行版本信息:cat /etc/redhat-release

[root@socket01 ~]# uname -a
Linux socket01 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@socket01 ~]# uname -r
3.10.0-862.el7.x86_64
[root@socket01 ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

1、配置真实主机:使用tomcat
配置java环境和修改tomcat主页
  1)、上传jdk解压放到/usr/local/java下
  2)、在/etc/profile.d/路径下新建文件java.sh,内容如下:
  JAVA_HOME=/usr/local/java
  CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/tools.jar
  export PATH=${PATH}:${JAVA_HOME}/bin
  3)、保存退出后验证jdk,执行java -version,显示如下:
  [root@socket01 ~]# java -version
  java version "1.8.0_112"
  Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
  Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)
  4)、修改tomcat下的index.jsp,路径如下(tomcat放在/usr/local/下)
  vim /usr/local/tomcat/webapps/ROOT/index.jsp
  搜索h1,在其内容后加上本机ip(当然可以加其他内容,主要为了方便识别) 保存退出后启动tomcat
  /usr/local/tomcat/bin/startup.sh
  5)、客户访问:http://192.168.1.155/(修改成80端口) http://192.168.1.155:8080/(默认端口)
两台真实主机配置一样

2、配置lvs负载均衡
  1)、配置路由服务器(ip:192.168.1.161)
  执行命令 lsmod|grep ip_vs 检查当前加载的内核模块,看是否存在 ip_vs 模块
  安装ipvsadm:yum -y install ipvsadm
  验证ipvsadm是否安装成功,显示信息如下,
  [root@sport01 ~]# ipvsadm
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
  [root@sport01 ~]# lsmod|grep ip_vs
  ip_vs 141432 0
  nf_conntrack 133053 1 ip_vs
  libcrc32c 12644 3 xfs,ip_vs,nf_conntrack
  2)、新建lvs路由配置文件
  [root@sport01 ~]# vim /usr/local/sbin/lvs_dr.sh
  内容如下:(请根据自己实际规划好的来设置)
  #! /bin/bash
  echo 1 > /proc/sys/net/ipv4/ip_forward
  ipv=/sbin/ipvsadm
  vip=192.168.1.150
  rs1=192.168.1.155
  rs2=192.168.1.154
  ifconfig ens33:0 down
  ifconfig ens33:0 $vip broadcast $vip netmask 255.255.255.255 up
  route add -host $vip dev ens33:0
  $ipv -C
  $ipv -A -t $vip:80 -s wrr
  $ipv -a -t $vip:80 -r $rs1:80 -g -w 1
  $ipv -a -t $vip:80 -r $rs2:80 -g -w 1
  $ipv -Ln
  执行该脚本文件:bash /usr/local/sbin/lvs_dr.sh
  说明:1、执行该文件会使用到ifconfig和route命令,需提前安装
      安装命令:yum -y install net-tools
     2、vip:虚拟ip,rs1/rs2:真实主机的ip
     3、ens33为本机的网卡,255.255.255.255为子网掩码,路由机和真实主机要一致
  3)、配置真实主机(两台配置一样)
  新建脚本文件:vim /usr/local/sbin/lvs_dr_rs.sh ,内容如下
  #! /bin/bash
  vip=192.168.1.150
  ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
  route add -host $vip 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
  sysctl -p &>/dev/null
执行命令:bash /usr/local/sbin/lvs_dr_rs.sh

在客户机访问:http://192.168.1.150/,不断刷新,可看到页面的变换

3、lvs+keepalived,实现主备路由
当主路由服务器出现异常,自动切换到备用路由服务器,
当主路由服务器恢复正常,自动切换到主路由服务器

首页安装ipvsadm,keepalived
yum -y install ipvsadm,keepalived
查看ip_vs模块:lsmod|grep ip_vs
验证ipvsadm是否安装成功:ipvsadm
查看keepalived安装目录:rpm -ql keepalived
修改keepalived配置文件:vim /etc/keepalived/keepalived.conf,内容如下
! Configuration File for keepalived
global_defs {
  notification_email {
    root@localhost
  }
  notification_email_from root@localhost
  smtp_server localhost
  smtp_connect_timeout 30
  router_id NodeA
}
vrrp_instance VI_1 {
  state MASTER #指定A节点为主节点 备用节点上设置为BACKUP即可
  interface ens33 #绑定虚拟IP的网络接口
  virtual_router_id 51 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组
  priority 100 #主节点的优先级(1-254之间),备用节点必须比主节点优先级低
  advert_int 1 #组播信息发送间隔,两个节点设置必须一样
  authentication { #设置验证信息,两个节点必须一致
    auth_type PASS
    auth_pass 1111
  }
  virtual_ipaddress { #指定虚拟IP, 两个节点设置必须一样
    192.168.1.150
  }
}
virtual_server 192.168.1.150 80 {
  delay_loop 6
  lb_algo rr
  lb_kind DR
  nat_mask 255.255.255.255
  persistence_timeout 0
  protocol TCP
  real_server 192.168.1.155 80 {
    weight 1
    HTTP_GET {
      url {
        path /index.jsp
        digest bc50eb0f710ec57726da87be326cd81f
      }
      connect_timeout 3
      nb_get_retry 3
      delay_before_retry 3
    }
}
real_server 192.168.1.154 80 {
  weight 1
  HTTP_GET {
    url {
      path /index.jsp
      digest 39700655fed2a88b80b97512e7ae2e8d
    }
    connect_timeout 3
    nb_get_retry 3
    delay_before_retry 3
  }
}

备用服务器的配置文件如下:
! Configuration File for keepalived
global_defs {
  notification_email {
    root@localhost
  }
  notification_email_from root@localhost
  smtp_server localhost
  smtp_connect_timeout 30
  router_id NodeB
}
vrrp_instance VI_1 {
  state BACKUP #指定A节点为主节点 备用节点上设置为BACKUP即可
  interface ens33 #绑定虚拟IP的网络接口
  virtual_router_id 51 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组
  priority 99 #主节点的优先级(1-254之间),备用节点必须比主节点优先级低
  advert_int 1 #组播信息发送间隔,两个节点设置必须一样
  authentication { #设置验证信息,两个节点必须一致
    auth_type PASS
    auth_pass 1111
  }
  virtual_ipaddress { #指定虚拟IP, 两个节点设置必须一样
    192.168.1.150
  }
}
virtual_server 192.168.1.150 80 {
  delay_loop 6
  lb_algo rr
  lb_kind DR
  nat_mask 255.255.255.255
  persistence_timeout 0
  protocol TCP
  real_server 192.168.1.155 80 {
  weight 1
  HTTP_GET {
    url {
      path /index.jsp
      digest bc50eb0f710ec57726da87be326cd81f
    }
    connect_timeout 3
    nb_get_retry 3
    delay_before_retry 3
  }
}
real_server 192.168.1.154 80 {
  weight 1
  HTTP_GET {
    url {
      path /index.jsp
      digest 39700655fed2a88b80b97512e7ae2e8d
    }
  connect_timeout 3
  nb_get_retry 3
  delay_before_retry 3
  }
}

注:digest算法,genhash -s ip -p 端口 -u /index.jsp,将算出来的值换掉原值

启动keepalived:
systemctl start keepalived或者service keepalived start
查看keepalived进程:ps aux|grep keepalived

客户机访问http://192.168.1.150,当把主路由服务器关掉后,自动切换到备用服务器
当主路由服务器恢复正常,又会切换到主路由服务器

lvs负载均衡(DR模式)的更多相关文章

  1. LVS负载均衡DR模式

    什么是集群? 一组相互独立的计算机,利用高速通信网络组成的一个计算机系统,对于客户机来说像是一个单一服务器,实际上是一组服务器.简而言之,一堆机器协同工作就是集群.集群的基本特点:高性能.高并发.高吞 ...

  2. LVS负载均衡DR模式实现

    LVS负载均衡之DR模式配置 DR 模式架构图: 操作步骤 实验环境准备:(centos7平台) 所有服务器上配置 # systemctl stop firewalld //关闭防火墙 # sed - ...

  3. LVS负载均衡DR模式部署

    目录: 1. 拓扑图 2. 搭建环境 3. LVS服务器部署 4. 测试 1. 拓扑图     LVS-DR模式采的IP地址全部为外网IP.    本例中IP的设置全部采用临时设置IP的方式,重启后会 ...

  4. LVS负载均衡DR工作流程

    LVS负载均衡DR工作流程 (a) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链. 此时报文的源IP为CIP,目标IP为VIP (b) PRE ...

  5. LVS负载均衡NAT模式实现

    LVS负载均衡之NAT模式配置 NAT 模式架构图: 操作步骤 实验环境准备:(centos7平台) 所有服务器上配置 # systemctl stop firewalld //关闭防火墙 # sed ...

  6. LVS负载均衡工作模式和调度算法

    原文链接:https://blog.csdn.net/weixin_40470303/article/details/80541639 一.LVS简介 LVS(Linux Virtual Server ...

  7. lvs负载均衡net模式

    环境配置,一台双网卡的ens33,ens37,ens37的网关是ens33的IP,指定一下nginx ens33,192.168.30.22,ens37,172.16.1.1nginx  192.16 ...

  8. LVS负载均衡NAT模式原理介绍以及配置实战

    LVS基本原理 流程解释: 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 PREROUTING 链首先会接收到用户请求,判断目标 IP 确定是本机 IP ...

  9. lvs 负载均衡 NAT模式

    1.原理 基于NAT机制实现.当用户请求到达director之后,director将请求报文的目标地址(即VIP)改成选定的realserver地址,同时将报文的目标端口也改成选定的realserve ...

随机推荐

  1. ACM总结——2017区域赛网络赛总结

    从省赛回来至今4周,每周周末都在打网络赛,每次都是划水,总结下自己弱弱的ACM吧!划水水~~ 首先是新疆赛区,基本上都是图论相关的东西,全靠队友,自己翻水水,实力躺了5道. 然后是沈阳赛区,终于有点贡 ...

  2. Java笔记 #05# Java Native Interface

    参考资料:http://www.ntu.edu.sg/home/ehchua/programming/java/javanativeinterface.html(很详细) 看jdk源代码时,经常会看到 ...

  3. kvm键盘使用

    在新建导向的时候最后一步之前,选择查看细节那里,在desplay的地方选择VNC server ,再在keyboard地方选择us-en,这下进入安装界面就可以了.

  4. Win32汇编学习(10):对话框(1)

    现在我们开始学习一些有关GUI编程的有趣的部分:以对话框为主要界面的应用程序. 理论: 如果您仔细关注过前一个程序就会发现:您无法按TAB键从一个子窗口控件跳到另一个子窗口控件,要想转移的话只有 用鼠 ...

  5. CSDN不登录阅读全文(最新更新

    CSDN真的烦...然而没卵用 用stylus加两行css就行了: .article_content{height:auto!important} .hide-article-box{display: ...

  6. ECharts注释

    <!DOCTYPE html> <head> <meta charset="utf-8"> <title>ECharts</t ...

  7. C# Log4Net 日志

    C#使用Log4Net记录日志 第一步:下载Log4Net            下载地址:http://logging.apache.org/log4net/download_log4net.cgi ...

  8. 『cs231n』卷积神经网络的可视化与进一步理解

    cs231n的第18课理解起来很吃力,听后又查了一些资料才算是勉强弄懂,所以这里贴一篇博文(根据自己理解有所修改)和原论文的翻译加深加深理解,其中原论文翻译比博文更容易理解,但是太长,而博文是业者而非 ...

  9. 关于vs code 快速生成vue 模板

    在 文件>首选项>用户代码片断里面,打开vue.json 添加以下代码: "Print to console": { "prefix": " ...

  10. git提交代码到码云详解

    一.为什么不用github而使用码云? 私有——免费,速度快 二.怎么用? 1.下载安装好git. 2.去码云官网注册个账号.官网:https://git.oschina.net/ 3.创建项目.项目 ...