专栏首页芝麻实验室基于LVS-NAT模型的负载均衡调度

基于LVS-NAT模型的负载均衡调度

  • LVS负载均衡器:(Centos7)
    • VIP: 172.18.59.100
    • DIP: 192.168.1.100
  • RS:
    • 192.168.1.15 Centos6
    • 192.168.1.20 Centos7

首先,需要确定的一点是,LVS-NAT模型中,所有的网络流量都需要流经DS,即包括请求报文和回应报文。当Client端从浏览器或其他客户端请求http或其它网络服务时,先由我们的DS服务器公网网卡接收,然后通过LVS调度挑选一个RS服务器,并通过内部转发机制从其内网网口转发给选中的RS服务器,最后将RS返回的响应报文通过相同的路线反向转回Client端。

配置RS端(实际提供服务的主机)

  • 安装httpd 并提供http服务。

为了更好的体现效果,此处我们在rs1和rs2主页文件写入不同内容,实际生产环境应是一样的内容

[root@rs1 ~]# yum -y install httpd #对RS2执行相同操作,下同
[root@rs1 ~]# systemctl enable httpd.service
[root@rs1 ~]# systemctl restart httpd
[root@rs1 ~]# echo "rs1" > /var/www/html/index.html
  • 配置网络

这步非常重要,只有将DS的内网网口设为RS的默认网关,才能保证请求报文和响应报文都经由DS

[root@rs1 ~]# route add default gw 192.168.1.100
[root@rs1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.100   0.0.0.0         UG    0      0        0 ens33
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33

配置DS端(调度器)

  • 安装ipvs并配置调度规则
[root@dr ~]# yum -y install ipvsadm
[root@dr ~]# systemctl enable ipvsadm
[root@dr ~]# ipvsadm -A -t 172.18.59.100:80 -s rr #对访问VIP的请求使用rr轮询算法挑选RS
[root@dr ~]# ipvsadm -a -t 172.18.59.100:80 -r 192.168.1.20:80 -m #添加RS
[root@dr ~]# ipvsadm -a -t 172.18.59.100:80 -r 192.168.1.15:80 -m
  • 开启核心转发
[root@dr ~]# echo 1 > /proc/sys/net/ipv4/ip_forward #开启核心转发 这样才能通过内部转发机制将公网和内网的流量打通和交换
[root@dr ~]# cat /proc/sys/net/ipv4/ip_forward
1

测试

[root@client ~]# curl 172.18.59.100
rs1
[root@client ~]# curl 172.18.59.100
rs2
[root@client ~]# curl 172.18.59.100
rs1
[root@client ~]# curl 172.18.59.100
rs2
[root@client ~]# curl 172.18.59.100
rs1
[root@client ~]# curl 172.18.59.100
rs2

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 定制你的全功能ISO系统

    上一篇中,我们实现了基于anaconda的网络安装,能够较快速的自定义系统安装,但是anaconda受限于图形界面和网络环境(虽然可以走CD-ROM安装,但并非...

    用户1456517
  • PHP开启GD库支持

    用户1456517
  • 记一次删除大文件后磁盘大小异常的故障

    日前,收到监控系统邮件告警,告知MySQL备份盘磁盘可用率不足20%,故而通过SSH远程上去,发现是因为保留的备份数据副本(全备)过多的原因,因为手动删除了较早...

    用户1456517
  • BST & AVL 二分搜索树 & 平衡二叉树的实现原理

    本文完整的实现了基本的BST,由于注重的是逻辑和原理的实现,所以没有采用泛型。注意方法的访问修饰符。

    大学里的混子
  • 226 Invert Binary Tree

    /** * Definition for a binary tree node. * function TreeNode(val) { * thi...

    用户1624346
  • LeetCode 783 & 530 Distance Between BST Nodes

    Given a Binary Search Tree (BST) with the root node root, return the minimum dif...

    大学里的混子
  • 【LeetCode】一文详解二叉树的三大遍历:前序、中序和后序(python和C++实现)

    深度学习技术前沿公众号博主
  • 自动创建代理-BeanNameAutoProxyCreator

    在其它的文章中我们基本都是采用ProxyFactoryBean类来创建代理类的,但在使用此类时,我们通常要设置很多属性不方便我们使用。在spring中我们还可以...

    吉林乌拉
  • Linux音频驱动-ALSA概述

    ALSA(Advanced Linux Sound Architecture)是linux上主流的音频结构,在没有出现ALSA架构之前,一直使用的是OSS(Op...

    DragonKingZhu
  • leecode刷题(24)-- 翻转二叉树

    二叉树问题,我们首先要想到的使用递归的方式来解决,有了这个思路,处理这道问题就很简单了:先互换根节点的左右节点,然后递归地处理左子树,再递归地处理右子树,直到所...

    希希里之海

扫码关注云+社区

领取腾讯云代金券