CentOS 6.0 配置LVS(DR)+KeepAlived+nginx--- (2)

七、Master安装步骤:

1、安装ipvsadm 和 KeepAlived for Master

 [root@RServer2 soft]#mkdir /soft

 [root@RServer2 soft]#cd /soft

 [root@RServer2 soft]# wgethttp://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz

 [root@RServer2 soft]# wgethttp://www.keepalived.org/software/keepalived-1.1.17.tar.gz

 [root@RServer2 soft]#ln -s/usr/src/kernels/2.6.32-71.el6.i686/ /usr/src/linux

 [root@RServer2 soft]# tar -zxvfipvsadm-1.24.tar.gz

 [root@RServer2 soft]# cd ipvsadm-1.24

 [root@RServer2 ipvsadm-1.24]# make;makeinstall

 [root@RServer2 ipvsadm-1.24]# cd ..

 [root@RServer2 soft]# tar -zxvfkeepalived-1.1.17.tar.gz

 [root@RServer2 soft]# cd keepalived-1.1.17

 [root@RServer2 soft]# ./configure--prefix=/usr/local/keepalived

 [root@RServer2 keepalived-1.1.17]#make;make install

 顺利的话就这些步骤了,如果出现错误提示,那么根据具体的错误具体处理,一般可能出现的错误:

 

1)、OpenSSL,提示可能如下

 !!! OpenSSL is not properly installed onyour system. !!!

 !!! Can not include OpenSSL headers files.

 解决方案:运行yum -y installopenssl-devel

 

2)、提示没有gcc编译器

 解决方案:运行yum installncurses-devel gcc gcc-c++ make rpm-build

 

2、配置keepalived forMaster

 [root@RServer2 keepalived-1.1.17]# cp/usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived

 [root@RServer2 keepalived-1.1.17]# cp/usr/local/keepalived/sbin/keepalived /usr/sbin/

 [root@RServer2 keepalived-1.1.17]# cp/usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

 [root@RServer2 keepalived-1.1.17]# mkdir -p/etc/keepalived/

 [root@RServer2 keepalived-1.1.17]# cp/usr/local/keepalived/etc/keepalived/keepalived.conf/etc/keepalived/keepalived.conf

 [root@RServer2 keepalived-1.1.17]# chmod +x/etc/init.d/keepalived

 [root@RServer2 keepalived-1.1.17]# gedit/etc/keepalived/keepalived.conf

 或是

 [root@RServer2 keepalived-1.1.17]# vi/etc/keepalived/keepalived.conf


 keepalived.conf文件如下:

 #Master服务器上的配置/etc/keepalived/keepalived.conf

 global_defs {

   notification_email {

       likx@****.com #可以多个地址

   }

   notification_email_from likx@****.com

   smtp_server 192.168.0.**

   smtp_connect_timeout 30

   router_id LVS_DEVEL

 }

 

#监测ipvsadm进程状态,每3秒执行一次

 vrrp_script chk_ipvsadm{

    script "/usr/local/keepalived/chk_ipvsadm.sh"

    interval 3

    weight 3

}

 

vrrp_instance VI_1 {

    state MASTER #标示状态为MASTER 备份机为BACKUP

    interface eth0

    virtual_router_id 51

    priority 100   #MASTER权重要高于BACKUP 比如BACKUP为99

    advert_int 5

    mcast_src_ip 192.168.20.101 #Master服务器IP,如果是备份机请填写备份机的IP

 

   authentication {

        auth_type PASS #主从服务器验证方式

        auth_pass 1111

     }

 

   virtual_ipaddress {

       192.168.20.99 #虚拟IP

    }

 }

 

#虚拟服务器 21端口的配置

 virtual_server 192.168.20.99 21 {

    delay_loop 10           #(每隔10秒查询realserver状态)

    lb_algo rr              #(lvs 算法)

    lb_kind DR              #(DirectRoute)

    persistence_timeout 60 #(同一IP的连接60秒内被分配到同一台realserver)

    protocol TCP         #(用TCP协议检查realserver状态)

 

    #实际服务器的IP和端口

    real_server 192.168.20.102 21 {

        weight  5

        TCP_CHECK {

            connect_timeout 10

            connect_port 21

        }

     }

 

    #实际服务器的IP和端口

    real_server 192.168.20.100 21 {

       weight  5

        TCP_CHECK {

            connect_timeout 10

            connect_port 21

       }

     }

 

    #实际服务器的IP和端口

   real_server 192.168.20.101 21 {

        weight  5

        TCP_CHECK {

            connect_timeout 10

            connect_port 21

        }

     }

 }

 

#虚拟服务器 80端口的配置

 virtual_server 192.168.20.99 80 {

    delay_loop 6

    lb_algo rr

    lb_kind DR

    protocol TCP

 

   real_server 192.168.20.102 80 {

        weight  5

        TCP_CHECK {

            connect_timeout 10

            connect_port 80

        }

    }

 

   real_server 192.168.20.100 80 {

        weight  5

        TCP_CHECK {

            connect_timeout 10

            connect_port 80

        }

     }

 

    real_server 192.168.20.101 80 {

        weight  5

        TCP_CHECK {

            connect_timeout 10

            connect_port 80

       }

     }

 }

}


 keepAlived使用方式:

 /etc/init.d/keepalived start|stop|restart

 /usr/local/keepalived/chk_ipvsadm.sh文件内容如下:

 #!/bin/bash

 #

 # author: likexi

 # description:

 # 定时查看ipvsadm是否存在,如果不存在则启动ipvsadm,

 # 如果启动失败,则停止keepalived

 #

 status=$(ps aux|grep ipvsadm | grep -v grep| grep -v bash | wc -l)

 if [ "${status}" = "0"]; then

        service ipvsadm start

        status2=$(ps aux|grep ipvsadm | grep -v grep | grep -v bash |wc -l)

        if [ "${status2}" = "0"  ]; then

                 /etc/init.d/keepalived stop

        fi

 fi

 

3、配置ipvsadm for Master

把一下内容保存成:lvs_server.sh,并放置在/etc/init.d目录下

 #!/bin/bash

 #把一下内容保存成:lvs_server.sh

 #并放置在/etc/init.d目录下

 #如果想启动LVS Server执行:/etc/init.d/lvs_server.shstart

 #如果想停止LVS Server执行:/etc/init.d/lvs_server.shstop

 #如果想重启LVS Server执行:/etc/init.d/lvs_server.shrestart

 

 VIP=192.168.20.99 #虚拟IP,更具具体情况而变

 #有几个输入几个,与下面的配置对应,同时必须与KeepAlived.config配置对应

 RIP1=192.168.20.101 #实际的服务器IP

 RIP2=192.168.20.100 #实际的服务器IP

 RIP2=192.168.20.102 #实际的服务器IP

 . /etc/rc.d/init.d/functions # 如果提示权限不够,那么先在命令行执行: chmod 777 /etc/rc.d/init.d/functions

 case "$1" in

 

start)

       echo "启动LVS服务器"

          #设置虚拟IP和同步参数

          /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up     #此处的netmask不能使用其他地址

          echo "1" >/proc/sys/net/ipv4/ip_forward

          #清空 IPVS的内存数据

          /sbin/ipvsadm -C

 

        #设置LVS

          #开启FTP 21 端口服务,并指向RIP1和RIP2的服务器

          /sbin/ipvsadm -A -t $VIP:21 -s rr

          /sbin/ipvsadm -a -t $VIP:21 -r $RIP1:21 -g

          /sbin/ipvsadm -a -t $VIP:21 -r $RIP2:21 -g

          /sbin/ipvsadm -a -t $VIP:21 -r $RIP3:21 -g


          #开启WEB 80 端口服务,并指向RIP1和RIP2的服务器

          /sbin/ipvsadm -A -t $VIP:80 -s rr

          /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g

          /sbin/ipvsadm -a -t $VIP:80 -r$RIP2:80 -g

          /sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -g

 

         #运行LVS

          /sbin/ipvsadm -ln

          ;;

 stop)

       echo "关闭LVS服务器"

       echo "0" >/proc/sys/net/ipv4/ip_forward

       /sbin/ipvsadm -C

       /sbin/ifconfig eth0:0 down

       ;;

 

restart)

       echo "关闭LVS服务器"

       echo "0" >/proc/sys/net/ipv4/ip_forward

       /sbin/ipvsadm -C

       /sbin/ifconfig eth0:0 down

 

     echo "启动LVS服务器"

      #设置虚拟IP和同步参数

      /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up               #此处的netmask不能使用其他地址

      echo "1" >/proc/sys/net/ipv4/ip_forward


      #清空 IPVS的内存数据

      /sbin/ipvsadm -C

 

     #设置LVS

      #开启FTP 21 端口服务,并指向RIP1和RIP2的服务器

      /sbin/ipvsadm -A -t $VIP:21 -s rr

      /sbin/ipvsadm -a -t $VIP:21 -r $RIP1:21 -g

      /sbin/ipvsadm -a -t $VIP:21 -r $RIP2:21 -g

      /sbin/ipvsadm -a -t $VIP:21 -r $RIP3:21 -g


      #开启WEB 80 端口服务,并指向RIP1和RIP2的服务器

      /sbin/ipvsadm -A -t $VIP:80 -s rr

      /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g

      /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g

      /sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -g


      #运行LVS

      /sbin/ipvsadm -ln

      ;;

 *)

 

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

       exit 1

 

esac

 

 

/etc/init.d/lvs_server.sh使用方法

 [root@RServer2 ~]# chmod 777/etc/init.d/lvs_server.sh

 [root@RServer2 ~]# chmod 777/etc/rc.d/init.d/functions

 [root@RServer2 ~]#/etc/init.d/lvs_server.sh start|stop|restart

 

到这里为止,Master配置完成。


八、Backup安装步骤:

 Backup的安装和Master的安装基本一致,只是一些参数略有变化。

 变化的参数为止如下:

 1、keepalived.conf文件中

 原:state MASTER #标示状态为MASTER 备份机为BACKUP

 state BACKUP  #标示状态改为BACKUP

 原:priority 100   #MASTER权重要高于BACKUP 比如BACKUP为99

 priority 99   #MASTER权重要高于BACKUP,MASTER为100,那么BACKUP略小于,比如99

 原:mcast_src_ip 192.168.20.101 #Master服务器IP,如果是备份机请填写备份机的IP

 mcast_src_ip 192.168.20.100  #换成BACKUP服务器IP

 

九、RealServer配置步骤:

 RealServer只需要在root目录下创建lvs_real_server.sh文件,并执行他一遍即可,lvs_real_server.sh的文件内容如下:

 #!/bin/bash

 #把一下内容保存成:lvs_real_server.sh

 #并放置在root目录下

 #如果想启动real Server执行:/root/lvs_real_server.shstart

 #如果想停止real Server执行:/root/lvs_real_server.shstop

 

CLUSTER_VIP=192.168.20.99 #虚拟IP,更具具体情况而变

 . /etc/rc.d/init.d/functions # 如果提示权限不够,那么先在命令行执行: chmod 777 /etc/rc.d/init.d/functions

 case "$1" in

 start)

       /sbin/ifconfig lo:0 $CLUSTER_VIP netmask 255.255.255.255 broadcast$CLUSTER_VIP              #此处的netmask不能使用其他地址

       /sbin/route add -host $CLUSTER_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

       sysctl -p >/dev/null 2>&1

       echo "真实服务器启动....."

       ;;

 stop)

       /sbin/ifconfig lo:0 down

       /sbin/route del $CLUSTER_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 "真实服务器停止....."

       ;;

 *)

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

       exit 1

 esac

 

/root/lvs_real_server.sh使用方法

 [root@RServer2 ~]# chmod 777/root/lvs_real_server.sh

 [root@RServer2 ~]# chmod 777/etc/rc.d/init.d/functions

 [root@RServer2 ~]# /root/lvs_real_server.shstart|stop|restart


十、配置web服务器:

        在三台服务器上分别配置nginx服务器作为lvs集群系统的web服务器。分别修改每个nginx的index.html页面,使每台服务器上的起始页面可以容易分辨。具体做法请参照网络教程。

十一、LVS群集系统维护命令:

1、ipvsadm维护

 启动:/etc/init.d/lvs_server.sh start

 停止:/etc/init.d/lvs_server.sh stop

 重启:/etc/init.d/lvs_server.sh restart


2、keepAlived维护

 启动:/etc/init.d/keepalived start

 停止:/etc/init.d/keepalived stop

 重启:/etc/init.d/keepalived restart


3、real server 维护

 启动:/root/lvs_real_server.sh start

 停止:/root/lvs_real_server.sh stop


十二、验证:

1、首先依次开启每个服务器上的各服务:

        /etc/init.d/lvs_server.sh start

        /etc/init.d/keepalived start

        /root/lvs_real_server.sh start

        /usr/local/nginx/sbin/nginx start            #nginx服务器启动

2、浏览器页面输入 http://192.168.20.99

3、关闭master、backup,看看页面每次是否都会切换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值