keepalived安裝見上一篇。node
lvs安裝nginx
檢查是否安裝了IPVS模塊: 注:LVS已是Linux標準內核的一部分,直接被編譯在內核中!bash
方法1: 查看IPVS模塊是否真的編譯到內核中去了,以下圖所示:服務器
配置文件:oop
! Configuration File for keepalived global_defs { notification_email { #acassen@firewall.loc #failover@firewall.loc #sysadmin@firewall.loc } #notification_email_from Alexandre.Cassen@firewall.loc #smtp_server 192.168.200.1 #smtp_connect_timeout 30 router_id master-node #vrrp_skip_check_adv_addr #vrrp_strict #vrrp_garp_interval 0 #vrrp_gna_interval 0 } vrrp_instance VI_1 { state MASTER interface ens33 mcast_src_ip 192.168.1.78 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.88 } } #vrrp_script chk_nginx { # script "/etc/keepalived/check_nginx.sh" # interval 2 # weight 2 #} #track_script { # chk_nginx #} virtual_server 192.168.1.88 80 { delay_loop 6 lb_algo wlc lb_kind DR nat_mask 255.255.255.0 persistence_timeout 50 protocol TCP real_server 192.168.1.78 80 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.1.79 80 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }
realserver.sh,兩臺服務器上都執行。spa
#add for chkconfig #chkconfig: 2345 70 30 #234都是文本界面,5就是圖形界面X,70啓動順序號,30系統關閉,腳本 #止順序號 #description: RealServer's script #關於腳本的簡短描述 #processname: realserver.sh #第一個進程名,後邊設置自動時會用到 #!/bin/bash VIP=192.168.1.88 source /etc/rc.d/init.d/functions case "$1" in start) ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP /sbin/route add -host $VIP dev lo:0 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 echo "RealServer Start OK" ;; stop) ifconfig lo:0 down route del $VIP >/dev/null 2>&1 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 "RealServer Stoped" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0