zoukankan      html  css  js  c++  java
  • LVS负载均衡在Ubuntu环境下部署详解

    一、本地环境介绍:

    负载均衡的三台机器均为Ubuntu Server 14.04 64位系统,内核中已集成ipvs模块( modprobe -l | grep ipvs 查看 )。为演示LVS负载均衡后的效果,需先在其中两台机器中安装apache服务(apt-get install apache2),并将位置在/var/www/html/目录下index.html文件修改成不同内容(如主机名)。
    1
    二、部署架构:

    主机名 IP 角色

    UbuntuServerEn64 192.168.226.149 负载均衡服务器 director
    UbuntuServerEn64_2 192.168.226.145 真实服务器 real server(已安装apache)
    UbuntuServerEn64_3 192.168.226.148 真实服务器 real server(已安装apache)

    VIP为192.168.226.150(VIP为对外提供的IP,并不是真实物理IP)
    1
    2
    3
    4
    5
    6
    7
    部署成功后,所有发送到VIP的请求包都会由director按照设置的算法分发到不同的real server进行处理。

    三、部署过程:

    1、负载均衡服务器(director)配置:

    #由于内核已集成ipvs模块,只需要安装ipvsadm即可
    apt-get install ipvsadm

    #在director上建立一个虚拟的ip地址进行消息广播
    ifconfig eth0:0 192.168.226.150 netmask 255.255.255.0 broadcast 192.168.226.150

    #将虚拟地址添加到路由表
    route add -host 192.168.226.150 dev eth0:0

    #此指令暂没发现有啥用处
    echo "1">/proc/sys/net/ipv4/ip_forward

    #使用ipvsadm安装LVS服务
    ipvsadm -A -t 192.168.226.150:80 -s rr

    #增加真实服务器
    ipvsadm -a -t 192.168.226.150:80 -r 192.168.226.145 -g
    ipvsadm -a -t 192.168.226.150:80 -r 192.168.226.148 -g
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    2、真实服务器 (real server)配置:

    ifconfig lo:0 192.168.226.150 netmask 255.255.255.255 broadcast 192.168.226.150 up

    route add -host 192.168.226.150 dev lo:0

    echo "1">/proc/sys/net/ipv4/ip_forward
    1
    2
    3
    4
    5
    director配置如下图所示:


    (ipvsadm 命令未截图成功)

    real server配置如下图所示:

    四、负载均衡测试:
    未使用LVS负载均衡前,在浏览器中输入各IP地址分别显示如下图

    使用LVS负载均衡后,在浏览器中输入VIP地址分别显示如下图

    浏览器显示不同内容代表发送到VIP的请求包可由director按照设置的算法分发到不同的real server进行处理。
    至此,LVS负载均衡架构已搭建完成。

    注:LVS是四层负载均衡,只能通过ip+port实现负载分发,可支持TCP&UDP。而Haproxy是七层负载均衡,可以实现更细粒度的负载分发,猷有专门的TCP和HTTP解决方案。但由于前者是操作系统层面支持,并发量和稳定性都表现较好而得到大量使用。

  • 相关阅读:
    C# 获取 存储过程 返回值
    C# System.Data.OracleClient requires Oracle client software version 8.1.7 or greater
    C# oracle 日期型字段,使用参数传值时,遇到ORA-01810: format code appears twice错误
    C# oracle to_date 日期型 参数传值
    windows2003两台服务器,局域网之间不能互相访问
    windows2003服务器,时间每隔1小时自动同步一次
    sqlserver 服务器主体 无法在当前安全上下文下访问数据库
    电商设计V1(一):软件工程设计
    Maven使用教程三:maven的生命周期及插件机制详解
    JVM 学习笔记二 :JVM内存区域
  • 原文地址:https://www.cnblogs.com/ExMan/p/11831540.html
Copyright © 2011-2022 走看看