准备:
三台服务器,一台是转发用户请求的服务器和另外2台用户请求最终到达的服务器。注:需要在同一个网段。
目的:
主要是通过一台服务器,将用户的每次发送的请求发送到不同的服务器上,实现我们现在常说的负载均衡功能。如下图所示:

首先在转发用户请求的服务器上配置
配置lvs的虚拟IP地址(虚拟IP地址是提供给客户端访问的IP地址)。

配置一个虚拟的IP地址
ifconfig wlan0:1 10.1.1.100/24
配置完后,ifconfig
命令可以看到多了一个wlan0:1。IP地址就是刚刚设置的虚拟ip

要让Linux系统具有路由转发功能需要配置一个Linux的内核参数net.ipv4.ip_forward,将它设置为1。默认为0的时候,如果ip请求的地址不是自己,会把这个数据包丢弃。如果是1,则说明IP转发功能已经打开,将收到的地址转发出去。
echo 1 > /proc/sys/net/ipv4/ip_forward

另外2台服务器上的配置。
为了最终看出效果,首先在这2台服务器上装上httpd并启动。
在每台相应的服务器上安装httpd并启动
yum install httpd -y
sudo service httpd start
如果发现输入启动命令后,端口并没有开启,那么就需要编辑一下/etc/httpd/conf/httpd.conf
这个配置文件,搜索#ServerName
,添加ServerName localhost:80


2台都装完后,分别进行访问。


接着调整这两台服务器的响应通告级别.可看到默认的级别都是0

echo 1 > /proc/sys/net/ipv4/conf/wlan0/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/wlan0/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

配置虚拟IP地址,这个IP和之前在代理的那台服务器上设置的IP是一致的,但此时的子网掩码是255.255.255.255
ifconfig lo:8 10.1.1.100 netmask 255.255.255.255
安装ipvsadm
这个只要在转发请求的那台服务器上进行配置就行了(我服务器是树莓派,直接apt-get install ipvsadm
,一开始打算在之前安装了Linux Deploy的安卓手机上使用ipvsadm,结果使用ipvsadm命令的时候一直报错:Can't initialize ipvs: Protocol not available Are you sure that IP Virtual Server is built in the kernel or as module?
)
yum install ipvsadm -y
设置监听的包,就是监听用户请求的是哪个ip地址
ipvsadm -A -t 10.1.1.100:80 -s rr
设置完监听后,再设置将用户请求的IP转到对应的服务器上
ipvsadm -a -t 10.1.1.100:80 -r 10.1.1.191:80 -g
ipvsadm -a -t 10.1.1.100:80 -r 10.1.1.137:80 -g

接着只要访问设置的虚拟IP地址10.1.1.100:80
就行了
网友评论