以后服务器只用CentOS和Ubuntu。下午用redhat装个lvs装了一下午都没搞好,TNND的。果断用Ubuntu,不到两个小时就搞定了。
原文参见:

我用的虚拟机(虚拟了两张网卡,eth0做外网,eth1做局域网,一下都针对eth1做设置)
1.LVSServer ip:192.168.196.6
2.WebServer Apache ip:192.168.196.168
2.Webserver Nginx ip:192.168.196.188
VIP:192.168.196.100

1,配置LVS机器:
在ubuntu server 10.4 默认安装是没有安装ipvsadm软件包的,在网上看了很多教程,都要编辑内核,但现在2.6.32内核已经不需要再编辑了。
sudo apt-get install ipvsadm

安装IPVS后,就可以配置LVS集群了,首先在LVSServer上绑定一个虚拟IP(也叫VIP),此IP用于对外提供服务,执行如下命令:
sudo ifconfig eth1:0 192.168.196.100 netmask 255.255.255.255 broadcast 192.168.196.100

此处在eth1设备上绑定了一个虚拟设备eth1:0,同时设置了一个虚拟IP是192.168.196.100,也就是上面我们规划的IP地址,然后指定广播地址也为192.168.196.100,需要特别注意的是,这里的子网掩码为255.255.255.255。
然后给设备eth1:0指定一条路由,执行如下指令:
sudo route add -host 192.168.196.100 dev eth1:0

然后开始配置ipvs,执行如下操作:
sudo ipvsadm -C
sudo ipvsadm -A -t 192.168.196.100:80 -s wrr
sudo ipvsadm -a -t 192.168.196.100:80 -r 192.168.196.168:80 -g
sudo ipvsadm -a -t 192.168.196.100:80 -r 192.168.196.188:80 -g
sudo ipvsadm -S
上面操作中,第一行是清除内核虚拟服务器列表中的所有记录,第二行是添加一条新的虚拟IP记录。这个新的IP是192.168.196.100。这里rr表示ipvsadm的8种算法中的轮询,做实验选这个算法,效果比较明显。第三、四行是在新加虚拟IP记录中添加两条新的WebServer记录,并且指定LVS 的工作模式为直接路由模式。-g,就是lvs的三种模式中的LVS-DR模式。-i 就是遂道LVS-TUN.第五行是保存设置。参数意义可以通过命令查看:ipvsadm -h

接着启用系统的包转发功能,从而使系统充当路由器。

修改/etc/sysctl.conf
net.ipv4.ip_forward=0
net.ipv4.conf.all.send_redirects=1
net.ipv4.conf.default.send_redirects=1
net.ipv4.conf.eth0.send_redirects=1
查看效果:
#sudo sysctl -p

LVSServer设置基本完成,可以重启一下网卡看一下eth1:0是不是有了ip地址,是不是可以ping通.这种方式做的参数设置并没有保存到服务器文件里,服务器重启后设置都会丢失。最后我将采用自启动Shell脚本的方法解决这个问题。
2.WebServer的设置
WebServer的设置比较简单。
直接上命令,如下:
sudo ifconfig lo:0 192.168.196.100 netmask 255.255.255.255 broadcast 192.168.196.100
sudo route add -host 192.168.196.100 dev lo:0

修改/etc/sysctl.conf
net.ipv4.ip_forward=0
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
#sudo sysctl –p
为什么要修改 sysctl.conf可以参考:
http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.arp_problem.html
专门讲解了关于LVS的 ARP ,也有专门讲解了在LVS-DR模式中ARP问题及如何去解决ARP问题,也有arp_ingnore,arp_announce具体的意思。要想深入学习LVS,必须要看这个LVS-HOWTO

分别将两个不同的页面内容放到两台WebServer机器上。

OK!设置完成,请通过http访问一下你的ip:192.168.196.100,多刷新几次,如果访问的页面内容不同,实验是成功。

后记:
由于对linux不熟悉,做LVSServer启动自动设置的时候也遇到了不少问题。
首先对网卡设置eth1:0如下:
auto eth1:0
iface eth1:0 inet static
address 192.168.196.100
netmask 255.255.255.255
broadcast 192.168.196.100
实现这条命令(sudo ifconfig lo:0 192.168.196.100 netmask 255.255.255.255 broadcast 192.168.196.100)

然后对其他的进行设置
由于对权限不熟悉,在终端运行命令的时候都需要sudo,以为shell脚本里也需要,结果起动不起来,让输入密码(悲剧啊,谁家服务器起来还要输密码才能用啊。)。经过运维同事的指点和很多次的试验(运维用的CentOS,对Ubuntu也不熟悉)终于搞定,其实脚本里不用sudo,脚本如下:

/etc/init.d/lvs.sh

#! /bin/sh

ipvsadm -C
route add -host 192.168.196.100 dev eth1:0
ipvsadm -A -t 192.168.196.100:80 -s wrr
ipvsadm -a -t 192.168.196.100:80 -r 192.168.196.168:80 -g
ipvsadm -a -t 192.168.196.100:80 -r 192.168.196.188:80 -g
ipvsadm -S

脚本写完后,要运行,又测试搞了半天,最开始写到porfile文件里,不对,后来写到/etc/init.d/rc.local的最后一行
......
......
sh /etc/init.d/lvs.sh

开机:破费(Perfect)...

Ubuntu下配置LVS【h】的更多相关文章

  1. 转[开发环境配置]在Ubuntu下配置舒服的Python开发环境

    在Ubuntu下配置舒服的Python开发环境 Ubuntu 提供了一个良好的 Python 开发环境,但如果想使我们的开发效率最大化,还需要进行很多定制化的安装和配置.下面的是我们团队开发人员推荐的 ...

  2. Ubuntu下配置C/C++开发环境

    在 Ubuntu 下配置 C/C++ 开发环境 转自:白巴的临时空间 Submitted by 白巴 on 2009-04-27 19:52:12. 学习笔记 虽然 Ubuntu 的版本已经是9.04 ...

  3. (4)Linux(ubuntu)下配置Opencv3.1.0开发环境的详细步骤

    Ubuntu下配置opencv3.1.0开发环境 1.最近工作上用到在Ubuntu下基于QT和opencv库开发应用软件(计算机视觉处理方面),特把opencv的配置过程详细记录,以供分享 2.步骤说 ...

  4. Ubuntu下配置python完成爬虫任务(笔记一)

    Ubuntu下配置python完成爬虫任务(笔记一) 目标: 作为一个.NET汪,是时候去学习一下Linux下的操作了.为此选择了python来边学习Linux,边学python,熟能生巧嘛. 前期目 ...

  5. [转]Ubuntu下配置NFS服务

    [转]Ubuntu下配置NFS服务  http://blog.163.com/liu8821031%40126/blog/static/111782570200921021253516/ Table ...

  6. Ubuntu下配置tftp服务

    Ubuntu下配置tftp服务 1.安装TFTP软件 sudo apt-get install tftp-hpa tftpd-hpa tftp-hpa是客户端,tftpd-hpa是服务器端 2.建立t ...

  7. ubuntu下配置Apache

    ubuntu下配置Apache Apache的默认文档根目录是在Ubuntu上的/var/www目录 配置文件是/ etc/apache2/apache2.conf配置存储在的子目录在/etc/apa ...

  8. ubuntu 下配置Web服务器

    ubuntu 下配置Web服务器 1.切换管理员身份 终端/文本界面输入命令: su 根据提示输入密码 注: 如果不能使用su 点击查看如何启用su2.安装MySQL5 apt-get install ...

  9. CentOS 与Ubuntu 下配置IP地址

    1.CentOS配置方法如下: 用vi打开配置文件 [root@haha3 ~]#  vi /etc/sysconfig/network-scripts/ifcfg-eth0 写入以下配置 DEVIC ...

随机推荐

  1. java重载和重写

    重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. ...

  2. 新版create-react-app+webpack4跨域

    src/setupProxy.js  创建文件 const proxy = require('http-proxy-middleware'); module.exports = function(ap ...

  3. js文件上传下载组件

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 先说下要求: PC端全平台支持,要求支持Windows,Mac,Linux 支持所 ...

  4. Gym - 102346G Getting Confidence 最小费用最大流

    Gym - 102346GGetting Confidence 题意:n*n的格子,每个格子上有一个数,要求每行每列都只能拿一个数,使得乘积最大,然后输出每列选择的是第几行的数. 如果是加法的话,那么 ...

  5. P4316 绿豆蛙的归宿 期望DP

    P4316 绿豆蛙的归宿 期望DP DAG上,每条边有边权,走向相连每条路的概率相等,问从起点到终点所经过的路径总长度期望 因为发现终点走到终点期望为0,定义\(f[i]\)从终点走到\(i\)所经过 ...

  6. python学习:模块(第一节)

    1.什么是模块? 如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了.为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这 ...

  7. java继承内存分配

    java继承内存分配 继承的基本概念: * Java不支持多继承,也就是说子类至多只能有一个父类. * 子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法. * 子类中定义的成员 ...

  8. 配置centos7阿里镜像源和epel源

    [root@runstone yum.repos.d]# pwd /etc/yum.repos.d [root@runstone yum.repos.d]# cat aliBase.repo #镜像源 ...

  9. excel中在某一列上的所有单元格的前后增加

    excel中在某一列上的所有单元格的前后增加数字汉字字符等东西的函数这样写 “东西”&哪一列&“东西” 例如  “1111”&E1&“3333”

  10. ICEM-圆锥的一种画法(2D转3D)

    原视频下载地址:https://pan.baidu.com/s/1jIOEelo  密码: btap