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.独立的操作系统.以及用户名和密码.在功能和使用方法上与服务器一模一样.用户也可以根据自 ...
随机推荐
- 初次使用git,记录使用步骤
参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 https://git ...
- Network | 协议栈
因特网协议栈Internet protocol stack: 应用层Application layer.运输层Transport layer.网络层Network layer.链路层Data link ...
- usaco-Cow Pedigrees
题意: 求出n个节点可以构成多少种高为h的二叉树.分析: 设左子树节点数x,右子树节点数为n-x-1,函数dp表示满足条件的树的个数,则dp(n)=dp(x)*(n-x-1). 对于未知数h,dp[n ...
- 比JSONKit还要快的第三方JSON解析器NextiveJson
这款比JSONKit还好用,效率跟iOS5原生的差不多,不过解析后对内存的释放比原生的要多.所以推荐 https://github.com/nextive/NextiveJson 顺便提一下解析XML ...
- 【spring boot】11.spring-data-jpa的详细介绍和复杂使用
==================================================================================================== ...
- css 让两个div重叠
做网页的时候在div里放了一个别的网页的天气插件,但是点击了会跳到广告页面的,想去网上找个禁止div点击的方法,可是发现没有,用了js的方法好像也没有成功,后来觉得还是用两个层重叠的方法来阻止点击,虽 ...
- mysql忘记密码的解决办法
mysql忘记密码时,需要重设密码. 在Windows下的操作如下: 1.关闭正在运行的MySQL. 2.打开DOS窗口,转到mysql\bin目录. 3.输入mysqld --skip-grant- ...
- MFC中 创建基于CFormView的文档视图程序
在MFC中可以创建多种类型的窗口程序,如对话框程序.单文档结构程序(非文档/视图结构).单文档(文档/视图结构)以及多文档视图结构程序等. 在编写一般的小工具时,我们的首选显然是对话框程序,不过基于对 ...
- 2016.10.18kubernetes 的8080和6443端口的区别与联系
由看过的资料知道,可以使用kubectl,client libraries和REST请求来访问api. 来自官方资料: By default the Kubernetes APIserver se ...
- 应该知道的Linux技巧(转载)
这篇文章来源于Quroa的一个问答<What are some time-saving tips that every Linux user should know?>—— Linux用户 ...