lvs+keepalived羣集

lvs+keepalived羣集
1、top圖:
dir1:192.168.146.31
dir2:192.168.146.32
rs1:192.168.146.33
rs2:192.168.146.34
2、安裝ipvsadm和keepalived :
dir1:
#yum install gcc gcc-c++ -y
#yum install kernel-devel -y
#yum
-y install keepalived ipvsadmphp

#modprobe ip_vs
#yum install libnl -y
dir2:
#yum install gcc gcc-c++ -y
#yum install kernel-devel -y
#yum
-y install keepalived ipvsadmhtml

#modprobe ip_vs
#yum install libnl -y
3、修改配置文件:nginx

cd /etc/keepalived/

vim keepalived.conf

global_defs {c++

notification_email {算法

root@localhost                         #默認三個地址,修改可用地址

}apache

notification_email_from root@localhostvim

smtp_server localhostbash

smtp_connect_timeout 30服務器

router_id xuegod63 #標識當前節點名字,兩個節點的此項須要不相同。網絡

}

#默認的配置文件中,使用第三方 smtp 服務器,但這在現實中幾乎沒有意義,發不出郵件,咱們將其挃定爲 localhost, 咱們也能夠將通知信息的發送交給本地 sendmail 服務處理。

vrrp_instance apache { #定義一個實例,一個集羣就是一個實例。 默認VI_1 能夠隨意改,雙擊能夠定義2個實例。

state MASTER        #指定 A 節點爲主節點 備用節點上設置爲 BACKUP 便可

interface eth0          #綁定虛擬 IP 的網絡接口

virtual_router_id 51    #VRRP 組名,兩個節點的設置必須同樣,以指明各個節點屬於同一 VRRP 組

priority 100            #主節點的優先級(1-254 之間),備用節點必須比主節點優先級低

advert_int 1             #組播信息發送間隔,兩個節點設置必須同樣

authentication {         #設置驗證信息,兩個節點必須一致

    auth_type PASS

    auth_pass 1111

}

virtual_ipaddress {

    192.168.146.30       #指定虛擬 IP, 兩個節點設置必須同樣

}

}

#相似添加虛擬一個服務 ipvsadm -A -t 192.168.1.70:80 -s rr

virtual_server 192.168.146.30 80 { #對虛擬IP63添加LVS相關內容

delay_loop 6                    #Keepalived 多長時間監測一次 RS

lb_algo rr                      #分發算法

lb_kind DR                      #DR 模式

nat_mask 255.255.255.0

persistence_timeout 50  #同一IP 50秒內的請求都發到同個real server ,這個會影響LVS的 rr 調度算法, 同一 IP 超過 50 秒後,再次訪問,纔會被轉發到另外一臺 real server 上。 persistence 持久性的意思,#若是要測試是否輪詢就要刪除這行代碼

protocol TCP

real_server 192.168.146.33 80 { #配置服務節點 1,須要指定 realserver 的真實 IP 地址和端口,IP 不端口之間用空格隔開

    weight 1    #配置服務節點的權值,權值大小用數字表示,數字越大,權值越高,設置權值大小能夠爲不一樣性能的服務器 

    TCP_CHECK {     #這段內容手動添加,爸之前的內容刪除

            connect_timeout 3       #表示 3 秒無響應超時

            nb_get_retry 3          #表示重試次數

            delay_before_retry 3    #表示重試間隔

            connect_port 80         #檢測端口

            }

}

real_server 192.168.146.34 80 {

    weight 1

    TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

            connect_port 80

            }

}

}

vrrp_instance nginx {

state BACKUP

interface eth0

virtual_router_id 52

priority 90

advert_int 1

authentication {

    auth_type PASS

    auth_pass 11112

}

virtual_ipaddress {

    192.168.146.29

}

}

virtual_server 192.168.146.29 80 {

delay_loop 6

lb_algo rr

lb_kind DR

nat_mask 255.255.255.0

persistence_timeout 50   #若是要測試是否輪詢就要刪除這行代碼

protocol TCP

real_server 192.168.146.33 80 {

weight 1

    TCP_CHECK {

        connect_timeout 3

        nb_get_retry 3

        delay_before_retry 3

connect_port 80

}

}

real_server 192.168.146.34 80 {

weight 1

        TCP_CHECK{

        connect_timeout 3

        nb_get_retry 3

        delay_before_retry 3

connect_port 80

}

}

}
4、2個rs服務器上創建測試網頁文件

yum install -y httpd php -y

service httpd restart

echo rs1 > /var/www/html/index.html

#echo rs2 > /var/www/html/index.html #第2臺機器
5、rs1和rs2配置vip:

vim /etc/init.d/lvsrsdr

#!/bin/bash

#chkconfig:2345 80 90

#description:start relserver

VIP=192.168.146.30

source /etc/init.d/functions #加載環境變量(能夠加載全部的環境變量)

case $1 in

start)

echo 'start LVS of Realserver DR'

    /sbin/ifconfig lo:1 $VIP broadcast $VIP netmask 255.255.255.255 up

    /sbin/route add -host $VIP dev lo:1

    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

    ;;

stop)

/sbin/ifconfig lo:1 down

    echo 'Close LVS of Realserver DR'

    echo '0' > /proc/sys/net/ipv4/conf/lo/arp_ignore

    echo '0' > /proc/sys/net/ipv4/conf/lo/arp_announce

    echo '0' > /proc/sys/net/ipv4/conf/all/arp_ignore

    echo '0' > /proc/sys/net/ipv4/conf/all/arp_announce

    ;;

*)

echo "Usage:$0 (start|stop)"

exit 1

esac

chmod +x /etc/init.d/lvsrsdr

#/etc/init.d/lvsrsdr start

#chkconfig --add lvrsdr

#chkconfig lvsrsdr on

vim /etc/init.d/lvsrsdr2

#!/bin/bash

#chkconfig:2345 80 90

#description:start relserver

VIP=192.168.146.29

source /etc/init.d/functions #加載環境變量(能夠加載全部的環境變量)

case $1 in

start)

echo 'start LVS of Realserver DR'

    /sbin/ifconfig lo:2 $VIP broadcast $VIP netmask 255.255.255.255 up

    /sbin/route add -host $VIP dev lo:2

    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

    ;;

stop)

/sbin/ifconfig lo:2 down

    echo 'Close LVS of Realserver DR'

    echo '0' > /proc/sys/net/ipv4/conf/lo/arp_ignore

    echo '0' > /proc/sys/net/ipv4/conf/lo/arp_announce

    echo '0' > /proc/sys/net/ipv4/conf/all/arp_ignore

    echo '0' > /proc/sys/net/ipv4/conf/all/arp_announce

    ;;

*)

echo "Usage:$0 (start|stop)"

exit 1

esac

chmod +x /etc/init.d/lvsrsdr2

#/etc/init.d/lvsrsdr start

#chkconfig --add lvrsdr2

#chkconfig lvsrsdr2 on

打開一個測試機器 :

curl http://192.168.146.29

或者:

elinks http://192.168.146.30 -dump

相關文章
相關標籤/搜索