Ubuntu下配置LVS【h】
我用的虚拟机(虚拟了两张网卡,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
接着启用系统的包转发功能,从而使系统充当路由器。
查看效果:
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
为什么要修改 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】的更多相关文章
- 转[开发环境配置]在Ubuntu下配置舒服的Python开发环境
在Ubuntu下配置舒服的Python开发环境 Ubuntu 提供了一个良好的 Python 开发环境,但如果想使我们的开发效率最大化,还需要进行很多定制化的安装和配置.下面的是我们团队开发人员推荐的 ...
- Ubuntu下配置C/C++开发环境
在 Ubuntu 下配置 C/C++ 开发环境 转自:白巴的临时空间 Submitted by 白巴 on 2009-04-27 19:52:12. 学习笔记 虽然 Ubuntu 的版本已经是9.04 ...
- (4)Linux(ubuntu)下配置Opencv3.1.0开发环境的详细步骤
Ubuntu下配置opencv3.1.0开发环境 1.最近工作上用到在Ubuntu下基于QT和opencv库开发应用软件(计算机视觉处理方面),特把opencv的配置过程详细记录,以供分享 2.步骤说 ...
- Ubuntu下配置python完成爬虫任务(笔记一)
Ubuntu下配置python完成爬虫任务(笔记一) 目标: 作为一个.NET汪,是时候去学习一下Linux下的操作了.为此选择了python来边学习Linux,边学python,熟能生巧嘛. 前期目 ...
- [转]Ubuntu下配置NFS服务
[转]Ubuntu下配置NFS服务 http://blog.163.com/liu8821031%40126/blog/static/111782570200921021253516/ Table ...
- Ubuntu下配置tftp服务
Ubuntu下配置tftp服务 1.安装TFTP软件 sudo apt-get install tftp-hpa tftpd-hpa tftp-hpa是客户端,tftpd-hpa是服务器端 2.建立t ...
- ubuntu下配置Apache
ubuntu下配置Apache Apache的默认文档根目录是在Ubuntu上的/var/www目录 配置文件是/ etc/apache2/apache2.conf配置存储在的子目录在/etc/apa ...
- ubuntu 下配置Web服务器
ubuntu 下配置Web服务器 1.切换管理员身份 终端/文本界面输入命令: su 根据提示输入密码 注: 如果不能使用su 点击查看如何启用su2.安装MySQL5 apt-get install ...
- CentOS 与Ubuntu 下配置IP地址
1.CentOS配置方法如下: 用vi打开配置文件 [root@haha3 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 写入以下配置 DEVIC ...
随机推荐
- Mac卸载Python
推荐使用 Homebrew 来安装第三方工具 自己安装的python散落在电脑各处,删除起来比较麻烦 今天在此记录一下删除的过程(以Python3.6为例) 删除Python 3.6 framewor ...
- Codeforces Round #597 (Div. 2) C. Constanze's Machine
链接: https://codeforces.com/contest/1245/problem/C 题意: Constanze is the smartest girl in her village ...
- jmeter md5加密请求参数
实际的接口测试过程中,再发生http之前有可能需要对某些参数(或某几个参数的组合)进行md5加密 在jmeter中可通过两种方式来实现md5加密 beanshell实现md5加密 在org.apach ...
- 十二.虚拟Web主机
*********************** 修改apache默认的网页文件存放位置 ]# mkdir /var/www/myweb ]# echo "I am MyWeb" & ...
- 树套树【bzoj3262】陌上花开
/* [bzoj3262]陌上花开 2014年6月19日1,2430 Description 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),又三个整数表示.现要对每朵花评级,一朵花的 ...
- 5、创建RDD(集合、本地文件、HDFS文件)
一.创建RDD 1.创建RDD 进行Spark核心编程时,首先要做的第一件事,就是创建一个初始的RDD.该RDD中,通常就代表和包含了Spark应用程序的输入源数据.然后在创建了初始的RDD之后,才可 ...
- maven管理的jsp-web应用如何添加servlet、jsp相关依赖(org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp)
明明tomcat下面就有这些包,然而还需要在maven依赖里面加上这个依赖 <!--引入Servlet开始--> <dependency> <groupId>jav ...
- Python基础之给函数增加元信息
1. 参数注解 当写好一个函数以后,想为这个函数的参数添加一些额外的信息,这样的话,其他的使用者就可以清楚的知道这个函数应该怎么使用,这个时候可以使用函数参数注解. 函数参数注解能提示程序员应该怎样正 ...
- 小程序 之wx.request和wx.showModal简单封装
一.request封装 request(url, data, successCallBack = function(data) {}, completeCallBack = function(data ...
- JS-七大查找算法
顺序查找 二分查找 插值查找 斐波那契查找 树表查找 分块查找 哈希查找 查找定义:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录).查找算法分类:1)静态查找和动态查找:注 ...