LVS的全名是Linux Virtual Server,是建立在一群服务器上的高负载,高效率, 运行在linux下的负载均衡技术。  在没有足够资金,而又服务器性能不够的情况下, lvs将会是你最好的选择.

      我将要配置的LVS的拓扑图如下:

在这里,称

192.168.1.106为A

192.168.1.107为B

192.168.1.103为C

 

正常情况下,A应该有两块网卡,一块监听外网,一块监听内网,但是,我这里只有一块网卡,所以只是在内容进行测试.

下面开始配置:

安装ipvsadm, ubuntu9.10的内核已经编译好了这个模块,所以省去了编译内容的这一部分,直接安装就行。

# sudo apt-get install ipvsadm

安装完之后,如果想确认一下, 输入# ipvsadm --version,应该有以下信息

ipvsadm v1.24 2005/12/10 (compiled with popt and IPVS v1.2.0)

 

进下来进行配置,现配置A 机器,它是整个lvs的关建,所有的请求都是通过它转发到B,C上面去处理的,然后B,C把处理的结果返回给A,A再响应给用户。

配置A:

echo "1" >/proc/sys/net/ipv4/ip_forward

echo "0" >/proc/sys/net/ipv4/conf/all/send_redirects

echo "0" >/proc/sys/net/ipv4/conf/default/send_redirects

echo "0" >/proc/sys/net/ipv4/conf/default/send_redirects

echo "0" >/proc/sys/net/ipv4/conf/eth0/send_redirects

 

把A添加到virtual server.

# ipvsadm -A -t 192.168.1.106:80 -s rr        //这个IP地址就是用户访问的ip地址

把B,C添加到real server

# ipvsadm -a -t 192.168.1.106:80 -r 192.168.1.103:80 -m -w 1    //192.168.1.106:80同上都是用户访问的地址, 权重设置为1

# ipvsadm -a -t 192.168.1.106:80 -r 192.168.1.107:80 -m -w 1  

 

配置B,C:

在机器B上

#sudo route add default gw 192.168.1.106   //配置B的网关为A的内网地址,这样做的目的是把real server(B)处理的结果交给virtual server(A)去响应给用户

 

在机器C上

#sudo route add default gw 192.168.1.106    //配置C的网关为A的内网地址

 

这样,基于LVS/NAT的配置就完成了,

测试一下.

为了知道到底是访问到哪台了,分别修改下/var/www/nginx-default/index.html( 这些服务器的nginx的root目录为/var/www/nginx-default)

比如,把C的/var/www/nginx-default/index.html修改为

<html>
<head>
<title>Welcome to nginx!</title>
</head>
<body bgcolor="white" text="black">
<center><h1>Hello,Welcome to C</h1></center>
</body>
</html>

然后随便在哪台机器上访问http://192.168.1.106

返回的内容不是B就是C吧.

posted on 2010-08-15 01:01  Junw_china  阅读(3201)  评论(1编辑  收藏  举报