lvs虚拟服务器
NAT模式
1.模拟环境:
LVS服务器有两块网卡,连接外网(用户端)和内网(服务器),充当"交警"角色.
优点: 节省ip开销
缺点: LVS服务器负载过高,数据吞吐量降低
三台Linux虚拟机:
LVS服务器(vmnet1 ip: 200.168.10.10 , vmnet2 ip: 192.168.10.1)
WEB服务器1(vmnet2 ip: 192.168.10.2)
WEB服务器2(vmnet2 ip: 192.168.10.3)
本地真实机: 外网用户(vmnet1 ip: 200.168.10.2)
2.准备:
a) 关闭防火墙
# service iptables stop
# vi /etc/selinux/config (设置 SELINUX=disabled)
b) 建立网页文件
# vi /var/www/html/index.html
(两台web服务器的index.html内容要差异化...)
c) 安装 ipvsadm 软件
# yum -y install ipvsadm*
3.配置LVS/WEB服务器:
a) LVS: 开启路由转发功能
# echo 1 > /proc/sys/net/ipv4/ip_forward
b) WEB: 设置网关
# route add default gw 192.168.10.1
(因为它在内网,它的数据得经过LVS服务器到外网去!)
c) 在LVS服务器上,ping内网和外网,看是否能通?
4.设置LVS服务器的转发规则:
#!/bin/bash
#lvs.sh
ipvsadm -At 200.168.10.10:80 -s rr
ipvsadm -at 200.168.10.10:80 -r 192.168.10.2:80 -m
ipvsadm -at 200.168.10.10:80 -r 192.168.10.3:80 -m
ipvsadm
# chmod a+x lvs.sh
./lvs.sh
-s 模式 rr 轮询
-r 真实服务器 -m 模式
5.测试:
外网用户访问 200.168.10.10
(如果操作正确,每刷新一次会显示不同内容,因为web服务器有2台,它们是轮流应答的!!)
TUN模式
1.模拟环境: LVS服务器和WEB服务器都设置为公网IP(有点:web服务器的返回数据不经过LVS服务器,二是直接给外网用户,数据吞吐量较NAT模式增加10倍!)
三台Linux虚拟机:
LVS服务器:(vmnet1 ip: 200.168.10.1)
WEB服务器1:(vmnet1 ip: 200.168.10.2)
WEB服务器2:(vmnet1 ip: 200.168.10.3)
本地真实机: 外网用户(vmnet1)
2.思考一个问题:
三台服务器全部在公网,用户访问时,怎么知道该访问哪一台WEB服务器 ; 即使知道要访问的是LVS服务器,那LVS怎么知道要去找哪一台WEB服务器呢?
3.写两个脚本: lvs.sh在LVS服务器执行,arp.sh在WEB服务器执行
#!/bin/bash
#lvs.sh
ifconfig tunl0 200.168.10.10 netmask 255.255.255.255 up
route add -host 200.168.10.10 dev tunl0
ipvsadm -At 200.168.10.10:80 -s rr
ipvsadm -at 200.168.10.10:80 -r 200.168.10.2:80 -i
ipvsadm -at 200.168.10.10:80 -r 200.168.10.3:80 -i
ipvsadm -L -n
#!/bin/bash
#arp.sh
ifconfig tunl0 200.168.10.10 netmask 255.255.255.255 up
route add -host 200.168.10.10 dev tunl0
echo 1 > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
当交换机问"谁是10.10",作arp忽略
echo 2 > /proc/sys/net/ipv4/conf/tunl0/arp_announce
当LVS问谁是"10.2",作arp宣告
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
4.测试: 用户访问 200.168.10.10
DR模式
1.模拟环境:
a) 在TUN模式上,把tunl0网卡都关闭,改用回环网卡,兼容性更强
b) 网络环境与TUN模式一致
2.写两个脚本:
#!/bin/bash
#lvs.sh
ifconfig eth0:0 200.168.10.10 netmask 255.255.255.255 up
route add -host 200.168.10.10 dev eth0:0
ipvsadm -At 200.168.10.10:80 -s rr
ipvsadm -at 200.168.10.10:80 -r 200.168.10.2:80 -g
ipvsadm -at 200.168.10.10:80 -r 200.168.10.3:80 -g
ipvsadm -L -n
#!/bin/bash
#arp.sh
ifconfig lo:0 200.168.10.10 netmask 255.255.255.255 up
route add -host 200.168.10.10 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
3.测试: 用户访问 200.168.10.10
;
lvs虚拟服务器的更多相关文章
- [Linux] LVS虚拟服务器四层负载均衡
随着互联网的爆炸性增长及其在我们生活中日益重要的作用,互联网上的流量急剧增加,并且每年以超过100%的速度增长.服务器上的工作负载正在迅速增加,因此服务器很容易在短时间内过载,尤其是对于流行的网站.为 ...
- Linux虚拟服务器--LVS
LVS 百科名片 LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,可以实现LINUX平台下的简单负载均衡.LVS是Linux Virtual Server的缩写,意思是L ...
- LVS (Linux虚拟服务器)模型及算法
LVS(Linux Virtual Server)Linux虚拟服务器 LVS集群采用IP负载均衡技术和基于内容请求分发技术. 用户请求发给负载均衡调度器,由负载均衡调度器根据设定的调度算法将请求发给 ...
- LVS (Linux虚拟服务器)-不同的负载均衡方法
随着Internet用户的增长,基于Web的公司处理的通信量急剧增加.有各种解决方案来应对这种不断增长的流量. 一种解决方案是垂直扩展服务器(即:简单地向服务器添加更多的CPU和内存资源.)当然在一定 ...
- Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台 Seesaw
负载均衡系统 Seesaw Seesaw是由我们网络可靠性工程师用 Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台,就像所有好的项目一样,这个项目也是为了解决实际问题而产生的. Seesa ...
- macOS apache配置及开启虚拟服务器的开启,apache开启重写模式
今天把自己的mac系统升到最新版,但是,apache却不能用了,因为mac上的apache是系统自带的,因为是mac目前的最新系统,所以出现了好多问题,整理了一下午也没有啥进展,最后还是把原来的在云盘 ...
- Nginx的虚拟服务器域名配置
虚拟服务器名(server name)是通过指令server_name来指定的.在< Nginx是如何处理Request的?>一节中,我们讲到nginx分两步来匹配过来的Request请求 ...
- C# 构建S7服务器 西门子的虚拟服务器 测试通讯 HslCommunication应用
本文将使用一个gitHub开源的组件技术来实现S7服务器的功能,使用的是基于以太网的TCP/IP实现,不需要额外的组件 github地址:https://github.com/dathlin/HslC ...
- vps 虚拟服务器 教程 ( Virtual Private Server 虚拟专用服务器 )
VPS是虚拟服务器的意思.他是通过软件在独立服务器上划分出来的一部分资源.从而虚拟出一个服务器.他拥有独立的IP.独立的操作系统.以及用户名和密码.在功能和使用方法上与服务器一模一样.用户也可以根据自 ...
随机推荐
- mybatis反向工程
首先创建一个test类: 在main方法里写上如下代码: List <String> warnings = new ArrayList <String>(); boolean ...
- Linux基础学习1
安装问题 随意下载的:CentOS-5.5-i386-LiveCD-Release2.iso Live CD 是可以直接运行在内存当中的,而不是安装镜像. 如之前玩过的BT5一样,把BT5-LiveC ...
- Android 进度条对话框ProgressDialog
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- 【div+css】两个div,如何让内层的div在外层div中水平垂直居中
好久没有写样式,很是很生疏 ==================================================================== 方法1: .parent { wi ...
- 负样本采样及bias校准、ctr平滑
参考:https://zhuanlan.zhihu.com/p/31529643 在CTR预估中,负样本采样是一种常见的特征工程方法.一般CTR预估的原始正负样本比可能达到1:1000~1:10000 ...
- Mycat本地模式的自增长分表操作
Mycat对表t_rc_rule_monitor做分表操作 在mysql上执行(没有t_rc_rule_monitor) DROP TABLE IF EXISTS t_rc_rule_monitor; ...
- 阿里云 RDS实例间的数据迁移
使用数据传输DTS可以实现两个RDS实例间的数据迁移.对于支持增量迁移的存储引擎,还可以使用DTS在源RDS实例不停服的情况下,将数据迁移到目标RDS实例.目前对于RDS不同存储引擎,只支持同构迁移( ...
- window.opener
window.opener 实际上就是通过window.open打开的窗体的父窗体. 比如在父窗体parentForm里面 通过 window.open("subForm.html" ...
- Oracle 中session和processes的初始设置
http://blog.163.com/succu/blog/static/193917174201252911727149/ 1.sessions 在初始化参数所设定的限制中,最为人所知的估计就 ...
- POJ 3373 Changing Digits
题目大意: 给出一个数n,求m,使得m的长度和n相等.能被k整除.有多个数符合条件输出与n在每位数字上改变次数最小的.改变次数同样的输出大小最小的. 共同拥有两种解法:DP解法,记忆化搜索的算法. ...