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解决方案。但由于前者是操作系统层面支持,并发量和稳定性都表现较好而得到大量使用。
LVS负载均衡在Ubuntu环境下部署详解的更多相关文章
- LVS负载均衡集群--DR模式部署
目录: 一.LVS-DR数据包流向分析 二.DR 模式的特点 三.LVS-DR中的ARP问题 四.DR模式 LVS负载均衡群集部署 一.LVS-DR数据包流向分析 1.为方便进行原理分析,将clien ...
- LVS负载均衡集群--NAT模式部署
目录: 一.企业群集应用概述 二.负载均衡群集架构 三.负载均衡群集工作模式分析 四.关于LVS虚拟服务器 五.NAT模式 LVS负载均衡群集部署 一.企业群集应用概述 1.群集的含义 Cluster ...
- Ubuntu环境下部署Django+uwsgi+nginx总结
前言 这是我在搭建Django项目时候的过程,拿来总结记录,以备不时之需. 项目采用nginx+uwsgi的搭配方式. 项目依赖包采用requirements.txt文件管理的方式. 本地准备工作 确 ...
- tensorflow安装过程-(windows环境下)---详解(摆平了很多坑!)
一, 前言:本次安装tensorflow是基于Python的,安装Python的过程不做说明(既然决定按,Python肯定要先了解啊):本次教程是windows下Anaconda安装Tensorflo ...
- tensorflow安装过程-(windows环境下)---详解
一, 前言:本次安装tensorflow是基于Python的,安装Python的过程不做说明(既然决定按,Python肯定要先了解啊):本次教程是windows下Anaconda安装Tensorflo ...
- LVS负载均衡之DR模式部署
1.LVS的DR模式介绍 参考自官网:http://www.linuxvirtualserver.org/zh/lvs3.html VS/DR利用大多数Internet服务的非对称特点,负 ...
- LVS负载均衡之NAT模式部署
1.LVS的NAT模式介绍 参考自官网:http://www.linuxvirtualserver.org/zh/lvs3.html 由于IPv4中IP地址空间的日益紧张和安全方面的原因,很多网络使用 ...
- LVS负载均衡群集部署——DR模式
LVS负载均衡群集部署--DR模式 1.LVS-DR概述 2.部署实验 1.LVS-DR概述: LVS-DR(Linux Virtual Server Director Server)工作模式,是生产 ...
- LVS负载均衡群集部署——NAT模式
LVS负载均衡群集部署--NAT模式 1.群集应用概述 2.NAT模式LVS负载均衡群集部署 1.群集应用概述: 存在的问题: 互联网应用中,随着站点对硬件性能.响应速度.服务稳定性.数据可靠性等要求 ...
随机推荐
- BZOJ4543 Hotel加强版(长链剖分)
题意 求一棵树上,两两距离相等的三个点的三元组(无序)的个数. 题解 转自 CaptainHarryChen 的博客 CODE 代码中的f,gf,gf,g对应题解中的num,waynum,waynum ...
- javascript权威指南第13章 事件示例代码
html 部分 <!DOCTYPE html> <html> <head> <title>Event Bubling Example</title ...
- php MySQL 删除数据表
MySQL 删除数据表 MySQL中删除数据表是非常容易操作的, 但是你再进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失. 语法 以下为删除MySQL数据表的通用语法: DROP TA ...
- 简单了解Web Workers API
1. 为什么使用Web Workers API 通过使用该API,web应用程序可以独立于主线程,运行一个单独的线程来处理脚本. 可以在独立的线程中解决耗时较长的任务,避免主线程阻塞. 2. 应用 1 ...
- sql server 的触发器的demo例子
-- ============================================= -- Author: <Author,,Name> -- Create date: < ...
- 代码 | 自适应大邻域搜索系列之(5) - ALNS_Iteration_Status和ALNS_Parameters的代码解析
前言 上一篇推文说了,后面的代码难度直线下降,各位小伙伴可以放去n的100次方心了.今天讲讲一些细枝末节,就是前面一直有提到的参数和一些状态的记录代码.这个简单啦,小编也不作过多解释了.大家直接看代码 ...
- 传统PC机I/O位址空间范围
空间范围是0x000--0x3FF,有1024个I/O端口位址可供使用! 使用EISA或PCI等汇流排结构的现代PC机,有64KB的I/O位址空间可供使用.在普通Linux系统下透过查看/proc/i ...
- vue-上拉加载、下拉刷新组件
vue在移动端开发过程中,上拉加载.下拉刷新是页面的基本需求,现在给大家介绍一种基于touch事件封装的刷新组件. 组件支持传参.传递事件.请求成功异步回调.上拉与触底触发加载或刷新. 父子组件间的通 ...
- centos6下安装docker
安装docker对内核版本的要求很高,需要内核3.10以上. 一.docker卸载 查看内核版本: 如果不升级内核到3.10安装docker,后面会有很多奇怪的问题,像我就是拉取不到镜像. 以下我是r ...
- Dp优化之决策单调栈优化
证明:g(i) ≤ g(j) (i ≤ j) 令 d=g(i) , k<d , 设cut = x表示 f(i) = f(x) + w[x,i] ( x < i ) 构造一个式子: ...