分享

nginx高可用 :keepalived

 昵称23016082 2015-04-21
为了解决nginx服务器挂了,整个服务器集群就会挂的问题,需要使nginx高可用:keepalived


至少两台服务器,一台作为主集群服务器,一台配用,当主服务器当机时,从服务器可用。

从服务器的功能;:监听主服务器是否当机,后端服务器是否可用


至少两台服务器需要安装和配置

         yum install  keepalived

1、 地址:/etc/keepalived/keepalived.conf

2、 帮助手册:man keepalived.conf

3、 编辑之前,需要备份:cp –a keepalived.conf backup. keepalived.conf

4、 编辑:

! Configuration File for keepalived

 

global_defs {

   notification_email {

     root@localhost#发送提醒邮件的目标地址可有多个

     goldbin@126.com

  }

   notification_email_from test@localhost#发送邮件的from地址,可以随意写,邮件地址不存在都无所谓

   smtp_server 127.0.0.1#邮件服务的地址,一般写本地

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

 

vrrp_instance VI_1 {

    state BACKUP# MASTER

    interface eth0#VIP需要绑定的网卡名称

    virtual_router_id 51

    priority 101#优先级 主的优先级要高

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.1.200/24 dev eth0 label eth0:0 #设置VIP,根据实际服务器的网卡名可能是eth1

    }

}

 

virtual_server 192.168.1.200 80 {#设置虚拟lvs服务,VIP PORT

    delay_loop 6

    lb_algo rr#调度算法wrr

    lb_kind DR#lvs的模式

    nat_mask 255.255.255.0

    persistence_timeout 50 一个IP地址在50秒内lvs转发给同一个后端服务器

    protocol TCP

 

    real_server 192.168.1.139 80 {#设置真实服务器的心跳机制 RID PORT

        weight 1#权重

        HTTP_GET {#心跳检测的方式

            url {

              path /#心跳检查的地址

              status_code 200#心跳检查返回的状态

            }

            connect_timeout 2 #超时时间

            nb_get_retry 3#重复检查3

            delay_before_retry 1#每隔1秒钟再次检查

        }

    }

    real_server 192.168.1.134 80 {#第二个真实服务器设置

        weight 1

        HTTP_GET {

            url {

              path /

              status_code 200

            }

            connect_timeout 2

            nb_get_retry 3

            delay_before_retry 1

        }

    }

}



后端服务器的配置:执行脚本文件 & 开启tomcat或apach等
#!/bin/bash
#description : start realserver
VIP=192.168.198.200
case "$1" in
start)
echo " start LVS of REALServer"
echo "1" >/proc/sys/net/ipv4/conf/eth0/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/eth0/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
route add -host $VIP dev lo:0
;;
stop)
ifconfig lo:0 down
echo "close LVS Directorserver"
echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/eth0/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
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多