天天看點

centos6中三台實體機配置nginx+keepalived+lvs

以下隻是簡單的安裝配置,并沒有測試這套負載,各種參數大家可以自己測試

vip:10.0.50.170

lvs server:10.0.50.183

real server:10.0.50.184/185

183/184/185同步時間,并且安裝nginx

# ntpdate time.nist.gov

# yum install nginx

# /etc/init.d/nginx start

在184/185上編寫測試頁面/usr/share/nginx/html/index.html

183上安裝ipvsadm*和keepalived

# yum install keepalived ipvsadm*

# vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

# sysctl -p

# vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

   notification_email {

     [email protected]

     [email protected]

     [email protected]

   }

   notification_email_from [email protected]

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

vrrp_instance VI_1 {

    state MASTER

    interface em1

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        10.0.50.170

virtual_server 10.0.50.170 80 {

    delay_loop 6

    lb_algo rr

    lb_kind DR

    nat_mask 255.255.255.0

    persistence_timeout 50

    protocol TCP

    real_server 10.0.50.184 80 {

        weight 1

        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    real_server 10.0.50.185 80 {

# /etc/init.d/keepalived start

# chkconfig keepalived on

# cd /etc/init.d/

# vi lvs

#!/bin/sh

# description: Start LVS of Director server

WEB_VIP=10.0.50.170

WEB_RIP1=10.0.50.184

WEB_RIP2=10.0.50.185

SET_VIP () {

/sbin/ifconfig em1:0 $WEB_VIP netmask 255.255.255.0 broadcast $WEB_VIP up

/sbin/route add -host $WEB_VIP dev em1:0

/sbin/ipvsadm -A -t $WEB_VIP:80 -s wrr -p 3

/sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP1:80 -g -w 1

/sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP2:80 -g -w 1

case "$1" in

 start)

  /sbin/ipvsadm -C

  SET_VIP

  touch /var/lock/ipvsadm >/dev/null 2>&1

  echo "ipvsadm start"

;;

 stop)

 /sbin/ipvsadm -C

 /sbin/ipvsadm -Z

 /sbin/ifconfig em1:0 down

 route del $WEB_VIP > /dev/null 2>&1

  rm -fr /var/lock/ipvsadm >/dev/null 2>&1

 echo "ipvsadm stoped"

 status)

 if [ ! -e /var/lock/ipvsadm ];then

     echo "ipvsadm is stoped "

   exit 1

else

  /sbin/ipvsadm -ln

    echo "ipvsadm is ok"

fi

 restart)

  route del $WEB_VIP > /dev/null 2>&1

 SET_VIP

  echo "ipvsadm  restart .."

*)

 echo "Usage :$0 {start|stop|status}"

esac

 exit 0

# /etc/init.d/lvs start

184/185機器都執行lvsrs腳本

# vi lvsrs

#!/bin/bash

#description : start Real Server

VIP=10.0.50.170

./etc/rc.d/init.d/functions

        start)

        echo " Start LVS of Real Server "

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

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

        #注釋:這四句目的是為了關閉ARP廣播響應,使VIP不能向網絡内發送廣播,以防止網絡出現混亂

        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:0 down

        echo "close LVS Director server"

        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

# /etc/init.d/lvsrs start

1.我同僚曾經問過兩台實體機的實作:

例如以上183/184上同時安裝并啟動nginx\keepalived\lvs腳本\lvsrs腳本

2.關于以下兩個差別:

或者/sbin/ipvsadm -A -t $WEB_VIP:80 -s rr

本文轉自 guowang327 51CTO部落格,原文連結:http://blog.51cto.com/guowang327/1669873,如需轉載請自行聯系原作者

繼續閱讀