LVS服務(wù)器簡單搭建
LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務(wù)器,是一個虛擬的服務(wù)器集群系統(tǒng)。可以在UNIX/linux平臺下實現(xiàn)負載均衡集群功能。該項目在1998年5月由章文嵩博士組織成立,是中國國內(nèi)最早出現(xiàn)的自由軟件項目之一。
LVS一般分為三個模式,DR模式也就是路由模式,這樣是用的最多的一種模式。NAT模式,tunnel模式也就是隧道模式。 也有說四種的,就是多了FULL NAT模式。
我們這里的實驗也是一個簡單實驗,顯示一個路由模式,也就是1臺LVS帶動兩臺nginx服務(wù)器。

大概就是這樣一個簡單拓撲。
先安裝LVS吧
安全裝備命令。
lsmod |grep ip_vs
uname -rm
ls /usr/src/kernels/`uname -r`
ln -s /usr/src/kernels/`uname -r` /usr/src/linux
因為LVS是基于內(nèi)核的,所以要建立這么一個連接,注意最后的鏈接應(yīng)該是藍色顯示

如果顯示不出內(nèi)核,就要安裝一個包
yum install kernel-devel -y
開始源碼安裝LVS
yum install libnl* libpopt*
yum install popt-static
yum install gcc
yum install gcc+
先提前把這些包給裝了。然后下載軟件
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
ls
tar zxf ipvsadm-1.26.tar.gz
cd ipvsadm-1.26/
mkdir /application
cd /application/
mv /software/ipvsadm-1.26/ .
cd ipvsadm-1.26/
make
echo $?
make install

這樣就安裝好了。
然后要設(shè)置VIP
ip addr add 192.168.19.44/24 dev ens192

添加路由表

在LVS先清空。

用ipvsadm -C 命令
然后開始配置兩臺主機上去
ipvsadm --set 30 5 60
ipvsadm -A -t 192.168.19.44:80 -s rr -p 20
ipvsadm -a -t 192.168.19.44:80 -r 192.168.19.39 -g -w 1
ipvsadm -a -t 192.168.19.44:80 -r 192.168.19.38 -g -w 1
ipvsadm -L -n

然后就是要在RIP上做ARP的抑制和綁定VIP。
ip addr show
ip addr add 192.168.19.44/32 dev lo:0
route add -host 192.168.19.44 dev lo
route -n
下面是做ARP抑制
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
可以開始測試效果了。


同一個地址訪問出不同的效果。
證明負載均衡有在作用了。

這樣最簡單的兩臺WEB的負載均衡就可以了。當然我們最佳的方式,是搭配keepalived來實現(xiàn)高可用是最好的。
但我這里沒有列出來,高可用又分了單實例和多實例。
這個后面還要好好學(xué)習(xí)一下。
監(jiān)測命令 watch -n 1 ipvsadm -L -n
ARP抑制的選項說明。



這里寫一個非常簡單的IPVS啟動和停止的腳本。
#!/bin/bash . /etc/init.d/functions VIP=192.168.19.44 PORT=80 RIP=( 192.168.19.38 192.168.19.39 ) start(){ ifconfig ens192:0 $VIP/24 up route add -host $VIP dev ens192 ipvsadm -C ipvsadm --set 30 5 60 ipvsadm -A -t $VIP:$PORT -s rr -p 20 for (( i=0;i<${#RIP[*]};i++)) do ipvsadm -a -t $VIP:$PORT -r ${RIP[$i]} -g -w 1 done } stop(){ ipvsadm -C ifconfig ens192:0 down route del -host $VIP dev ens192 } case "$1" in start) start echo -e "\e[32m ipvs is started \e[0m" ;; stop) stop echo -e "\e[31m ipvs is stoped \e[0m" ;; restart) stop echo -e "\e[31m ipvs is stop \e[0m" start echo -e "\e[32m ipvs is start \e[0m" ;; *) echo -e "\e[42m USAGE:$0 {start|stop|restart} \e[0m" esac

浙公網(wǎng)安備 33010602011771號