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 ...
随机推荐
- php数据类型之查看和判断数据类型
我们知道了一个数据的类型,才能进行下一步操作.后面的时候,大家可以学习到更多的知识——自定义功能(函数). 我们来做一个场景模拟:(注:眼前不用会写这个函数,以后会教大家) 假设,我们可以写一个智能的 ...
- 利用亚马逊AWS搭建个人服务器
转载博客地址:https://www.jianshu.com/p/a045d4217175
- OSS的简单使用
OSS简介 Object Storage Service,简称 OSS,是阿里云提供的海量.安全.低成本.高可靠的云存储服务. 它具有与平台无关的RESTful API接口,能够提供99.999999 ...
- js文件上传下载组件
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 先说下要求: PC端全平台支持,要求支持Windows,Mac,Linux 支持所 ...
- Linux Swap是干嘛的?
swap是干嘛的? 在Linux下,SWAP的作用类似Windows系统下的“虚拟内存”.当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况. SWAP意思 ...
- Python多线程笔记(三),queue模块
尽管在Python中可以使用各种锁和同步原语的组合编写非常传统的多线程程序,但有一种首推的编程方式要优于其他所有编程方式即将多线程程序组织为多个独立人物的集合,这些任务之间通过消息队列进行通信 que ...
- 分治 FFT学习笔记
先给一道luogu板子题:P4721 [模板]分治 FFT 今天模拟有道题的部分分做法是分治fft,于是就学了一下.感觉不是很难,国赛上如果推出式子的话应该能写出来. 分治fft用来解决这么一个式子\ ...
- 前端逼死强迫症之DOM
Dom:document.相当于把所有的html文件,转换成了文档对象. 之前说过:html-裸体的人:css-穿上衣服:js-让人动起来. 让人动起来,就得先找到他,再修改它内容或属性. 找到标签 ...
- $.extend和$.fn.extend详解
一.定义 $.extend()属于j全局的Query对象,用于将一个或多个对象合并到目标对象上: $.fn.extend()属于jQuery的原型对象,用于在jQuery原型上扩展实例属性和方法. 二 ...
- NOIP2014提高组 题解报告
D1 T1 无线网路发射器选址 题目大意:找一个矩形,使其覆盖的目标点最大. 题目过水,直接暴力搞过去,代码就不贴了. 但我TM居然有个地方SB了,调了半天才发现输入有问题: scanf(" ...