centos系统Lvs负载均衡配置详解

实验用三台Vmware下虚拟的centos5.5服务器,一台作为负载调度器(Lvs-server),两台真实web服务器(web1,web2).

一、Lvs-nat实验:

配置IP:

1.window7下与虚拟机相连的网卡配置成8.8.8.1,不虚配置网关。

2.Lvs-server需要配置两块网卡,一块(eth0)模拟与外网连接(本实验下与Windows相连),一块(eth1)与内部真实服务器通信。eth0:8.8.8.8,eth1:192.168.10.1

3.web1:eth0:192.168.10.2

4.web2:eth0:192.168.10.3

配置web1,web2的默认网关地址为Lvs-server eth0地址,表示返回的信息通过Lvs-server给浏览器

此时需要在Lvs-server上安装Lvs软件,即ipvsadm

开启Lvs-server路由功能:echo 1 > /proc/sys/net/ipv4/ip_forward(此步必须执行,否则Lvs-server上两块网卡之间不能通信)

然后写调度脚本lvsnat.sh,

#!/bin/bash

#lvsnat.sh

ipvsadm -C(删除此前添加的所有的转化表)

ipvsadm -A -t(表示tcp协议) 8.8.8.8:80 -s rr(轮叫模式)

ipvsadm -a -t 8.8.8.8:80 -r 192.168.10.2:80 -m(把访问8.8.8.8的请求通过轮叫模式转到192.168.10.2服务器上,-m表示nat方式)

ipvsadm -a -t 8.8.8.8:80 -r 192.168.10.3:80 -m

ipvsadm -L -n(打印执行结果)

保存后赋予执行权,然后执行。

最后在windows的浏览器中输入8.8.8.8即可访问真实服务器上的网页。(注意,实验中必须关闭服务器防火墙,包括iptables 和selinux)

 

二、Lvs ip-tun:

实验设备与之前一致。

配置IP:

1.window7下与虚拟机相连的网卡配置成200.168.10.4,不虚配置网关。

2.Lvs-server只需要配置一块网卡,另外还需要配置tun(隧道网卡)。eth0:200.168.10.1,tunl0:200.168.10.10 netmask 255.255.255.255(此处4个255将200.168.10.10限定为另一个网段,此网段只有一个Ip)

3.web1:eth0:200.168.10.2,tunl0:200.168.10.10 netmask 255.255.255.255

4.web2:eth0:200.168.10.3,tunl0:200.168.10.10 netmask 255.255.255.255

修改路由表:

Lvs-server:route add -host 200.168.10.10 dev tunl0

web1:

route del default(删除上个实验添加的网关)

route add -host 200.168.10.10 dev tunl0

web2:

route del default

route add -host 200.168.10.10 dev tunl0

 

Lvs-server服务器脚本:

#!/bin/bash

#..

ipvsadm -C(删除此前添加的所有的转化表)

ipvsadm -A -t(表示tcp协议) 200.168.10.10:80 -s rr(轮叫模式)

ipvsadm -a -t  200.168.10.10:80  -r  200.168.10.2:80 :80 -i(把访问200.168.10.10:80 的请求通过轮叫模式转到200.168.10.2服务器上,-i表示ip-tun方式)

ipvsadm -a -t  200.168.10.10:80  -r  200.168.10.3:80 :80 -i

ipvsadm -L -n(打印执行结果)

执行脚本

 

然后写真实服务器脚本:

#!/bin/bash

#..

echo "1" > /proc/sys/net/ipv4/tunlo/arp_ignore

echo "2" > /proc/sys/net/ipv4/tunlo/arp_announce

echo "1" > /proc/sys/net/ipv4/all/arp_ignore

echo "2" > /proc/sys/net/ipv4/all/arp_announce

(此段含义:外界访问200.168.10.10时忽略,而当Lvs-server将请求转发过来时响应,并把200.168.10.2的mac地址给交换机)

执行脚本

最后在windows的浏览器中输入8.8.8.8即可访问真实服务器上的网页。

 

Lvs dr与ip-tun相似,只不过在lvs-server上用eth0:0代替tunlo,在web1与web2上用lo代替tunlo,其他变动不大,此处不加详解。

再来看个简单的例子、LVS负载均衡

LvsIP :118.126.3.42  LvsVIP: 118.126.3.77   Web:1 118.126.3.47   Web2:118.126.3.57

LVS Server 基本配置

[root@LVS ~]#ifconfig seth0:0 118.126.3.77  netmask 255.255.255.255   设置零时虚拟ip 
[root@LVS ~]# router add  -host  118.126.3.77 dev seth0:0          将此IP加入路由队列
[root@LVS ~]#yum –y install ipvsadmin*               安装lvs虚拟服务支持的控制命令 
[root@LVS ~]#ipvsadm –At 118.126.3.77:80  -s  rr     保存虚拟服务器规则
[root@LVS ~]#ipvsadm –at 118.126.7.77:80 –r 118.126.3.47:80 访问7.77会指向到3.47服务上
[root@LVS ~]#ipvsadm –at 118.126.7.77:80 –r 118.126.3.57:80 访问7.77会指向到3.57服务上
 
Web1 Server 基本配置

[root@WEB 1~]#ifconfig lo:0 118.126.3.77 network 255.255.255.255 web1服务器的回环接口
[root@WEB 1~]# router add  -host  118.126.3.77 dev lo:0     加入IP路由队列
[root@WEB 1~]#echo “1”> /proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@WEB 1~]#echo “2”> /proc/sys/net/ipv4/conf/all/arp_announce
[root@WEB 1~]#echo “1”> /proc/sys/net/ipv4/conf/all/arp_ignore 
[root@WEB 1~]#echo “2”> /proc/sys/net/ipv4/conf/lo/arp_announce
 
 
Web2 Server 基本配置

[root@WEB 2~]#ifconfig lo:0 118.126.3.77 network 255.255.255.255 web1服务器的回环接口
[root@WEB 2~]# router add  -host  118.126.3.77 dev lo:0     加入IP路由队列
[root@WEB 2~]#echo “1”> /proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@WEB 2~]#echo “2”> /proc/sys/net/ipv4/conf/all/arp_announce
[root@WEB 2~]#echo “1”> /proc/sys/net/ipv4/conf/all/arp_ignore 
[root@WEB 2~]#echo “2”> /proc/sys/net/ipv4/conf/lo/arp_announce

时间: 2024-09-25 21:22:01

centos系统Lvs负载均衡配置详解的相关文章

LAMT基于mod_jk负载均衡配置详解

配置基于mod_jk的负载均衡 mod_jk文章 1. 为了避免用户直接访问后端Tomcat实例,影响负载均衡的效果,建议在Tomcat 7的各实例上禁用HTTP/1.1连接器. 2.为每一个Tomcat 7实例的引擎添加jvmRoute参数,并通过其为当前引擎设置全局惟一标识符.如下所示.需要注意的是,每一个实例的jvmRoute的值均不能相同. <Engine name="Standalone" defaultHost="localhost" jvmRou

CentOS系统Apache虚拟主机配置详解

NameVirtualHost *:80   注意一:NameVirtualHost 指定虚拟主机所使用的IP地址或域名,但是最好是IP地址.使用基于域名的虚拟主机时,NameVirtualHost是必要的指令.NameVirtualHost可以定义多个. 注意二:所有符合NameVirtualHost或<VirtualHost>标签定义的请求,都会被作为虚拟主机处理,而主服务器将不理 会.NameVirtualHost定义了而<VirtualHost>标签没有定义的的请求,服务器

CentOS中vsftp安装与配置详解_Linux

一般我们在安装完系统后都会自动安装了vsftp服务了,但是有时候还是得需要自己动手的,比如这两天就在给我朋友配置了一下,顺手把过程记录下来,以便需要的时候查阅或者给需要的朋友提供方便:) 1. 安装 使用chkconfig --list来查看是否装有vsftpd服务: 使用yum命令直接安装: yum -y install vsftpd 然后为它创建日志文件: touch /var/log/vsftpd.log 这样简单的两个命令就完成了vsftp的安装,但是如果你现在想这样ftp://your

Windows 08 R2_NLB负载均衡(图文详解)

目录 目录 Load Balance 使用NLB来部署Web Farm集群 环境准备 在Win08r2pc1中配置DNS服务 在Win08r2pc1中部署File Service文件服务 在Win08r2pc1中部署IIS Web服务 在win08r2pc2上部署IIS Web服务 配置共享的站点文件夹 win08r2pc1中的web共享配置 win08r2pc2中的web共享配置 创建NLB集群 NLB的高级管理 编辑端口规则 Load Balance Load Balance:负载均衡提供了

Centos LVS Dr 负载均衡 配置说明详解

环境: LVS/Dr服务器:200.168.10.1 真实rip: 200.168.10.2 真实rip: 200.168.10.3 VIP : 200.168.10.10 LVS服务器配置: 关闭 iptables 和 selinux ,防止因为防火墙等原因照成失败 安装ipvsadm yum -y install ipvsadm* 执行脚本如下 #!/bin/bash #ipvs.sh # 把200.168.10.10 绑定到 eth0:0接口上 子网掩码是4个255 使得 200.168.

CentOS系统MongoDB 编译安装教程详解

CentOS5编译安装mongodb mongodb有已经编译好的二进制包,解压到对应目录就可以使用. 下面介绍一下,怎么从源码进行编辑安装. 安装前: 安装scons wget http://prdownloads.sourceforge.net/scons/scons-2.3.4.tar.gz python setup.py install 下载mongodb源码&安装: wget https://github.com/mongodb/mongo/archive/r2.2.7-rc0.tar

linux系统apache日志文件配置详解

Linux系统下apache日志文件设置(每天单独生成一个日志文件) 引言: Apache默认安装下,日志记录只有一个文件,时间久了之后,这个文件会变的很大,管理员要想查看分析日志,光打开日志就要花费很长时间,甚至还会影响服务器运行. 下面教大家设置apache,让服务器每天单独生成一个日志文件,这样管理.分析日志会方便很多. vi /etc/httpd/conf/httpd.conf #编辑文件 #ErrorLog logs/error_log #注释此行,添加下面这行  ErrorLog "

CentOS下IPTables FTP规则配置详解

在设置ftp通过iptables规则前,需要先了解下ftp工作的两种模式,他们分别是主动模式和被动模式.如果对ftp原理不是很清楚,可以先参考下下面几篇文章. FTP简介 1.FTP主动模式和被动模式的区别 2.Active FTP vs. Passive FTP, a Definitive Explanation 简单的说,主动模式是从服务器端向客户端发起连接:被动模式是客户端向服务器端发起连接.两者的共同点是都使用 21端口进行用户验证及管理,差别在于传送数据的方式不同,PORT模式的FTP

puppet报告系统Dashboard部署及配置详解

Puppet Dasshboard是由支持Puppet开发的公司Puppetlabs创建的,是Ruby on Rails程序.可以作为一个ENC(外部节点分类器)以及一个报告工具,并且正在逐渐成为一个包含许多Puppet新功能的集成界面,例如审计和资源管理功能. Puppet Dashboard是一个Ruby on Rails程序,用于显示Puppet master和agent的相关信息.它允许你查看从一个或多个Puppet master汇总的图形和报告数据.它同时从一个或者多个Puppet m