说明:此lvs+keepalived是参照网上诸多资料配置出来的。

      这是在debian 6.0上实验的,除了keepalived ipvsadm 命令是apt-get安装的,其他没什么区别。

一、LVS+Keepalived介绍

 

LVSLinux Virtual Server的简写,即linux虚拟服务器,是一个虚拟的服务器集群系统。目前有三种IP负载均衡技术(NATDRTUN)。

Keepalived在文档配置中主要是Realserver的健康状态检查以及LoadBalance主机和backup主机失败后切换。

 

二、网站负载均衡拓扑图

 

lvs+keepalived配置_第1张图片

   

 

 

LVS-Vip            192.168.1.230

LVS-DR-Master      192.168.1.231

LVS-DR-Backup      192.168.1.232

WEB1-Realserver    192.168.1.233

WEB2-Realserver    192.168.1.234

GATEWAY          192.168.1.1

 

  三、LVS-DR配置

 

说明:只需要keepalived全部搞定。

 

\\使用debian源自动安装keepalived

apt-get  install  keepalived

cp  /usr/share/doc/keepalived/samples/   /etc/keepalived

\\启动keepalived

/etc/init.d/keepalived  restart

 

Keepalived配置:

 

 

! Configuration File for keepalived

 

global_defs {

   notification_email {

     [email protected]  \\事件发生时发送到的Email

   }

   notification_email_from  [email protected]

   smtp_server 127.0.0.1

#   smtp_connect_timeout 30

   router_id LVS_DEVEL  \\运行keepalived的机器标识

}

vrrp_instance VI_1 {

    state MASTER

    interface eth0

    virtual_router_id 50  \\vrid标记

#    nopreempt  \\不抢占,防止列脑,只能放置在BACKUP主机上,并且优先级比另一台高,主从都是backup状态下使用,通过优先级来控制,添加在优先级高的机器上。

    priority 100     \\高优先级为MasterMaster至少比BACKUP50

    advert_int 1     \\检查间隔,默认1

    authentication {

        auth_type  PASS

        auth_pass  1111

    }

    virtual_ipaddress {     \\VIP地址,可以添加多个,另起一行

        192.168.1.230

    }

}

 

virtual_server 192.168.1.230 80 {    \\VIP port

    delay_loop 6                \\每隔10秒查询realserver的状态

    lb_algo wrr                   \\LVS算法

    lb_kind DR                  \\集群模式

    persistence_timeout 50         \\会话保持时间

    protocol TCP                   \\使用的协议

 

 

    real_server 192.168.1.233 80 {    

        weight 3        \\权重设置

        TCP_CHECK {

            connect_timeout 10    \\连接超时时间

            nb_get_retry 3         \\重连次数

            delay_before_retry 3     \\重连间隔

            connect_port 80

        }

   }

    real_server 192.168.1.234 80 {

        weight 3

        TCP_CHECK {

            connect_timeout 10

            nb_get_retry 3

            delay_before_retry 3

            connect_port 80

        }

   }

 

四、WEB-Realserver 配置

#sed -i 's/exit 0/#exit 0/g' /etc/rc.local

#ifconfig  lo:0 192.168.1.230 netmask 255.255.255.255 broadcast 192.168.1.230 up

# route add -host 192.168.1.230 dev lo:0

 

/etc/sysctl.conf写入

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_announce = 2

sysctl  -p

 

 

 

五、web页面准备

 

使用nginxwebserver,版本此处任选的,目的为输出一个index.html的静态页面。

 

  server

 {

       listen   80;

       server_name 192.168.1.230; \\此处为VIP地址,若为本机服务器地址,访问会出现403页面无法访问。

    access_log  /var/log/nginx/test_access.log;

       location /

      {

       index index.html;

       root /data/nginx/test.com;

      }

  }

 

 

六、查看LVS服务是否正常

  apt-get  install   ipvsadm

Ipvsadm  -ln

 

结果会出现realserverip地址

 

 

七、LVS-DR-BACKUP配置

只需更改keepalived.conf文件

 

state  BACKUP

priority 50     \\高优先级为MasterMaster至少比BACKUP50

 

重启keepalived