首页 运维 网络学院 查看内容

nginx+keepalived 双机热备

2011-7-6 12:13 701 0

摘要:   对于中、小型企业,如果没有资金去购买昂贵的四/七层负载均衡交换机,那么Nginx是不错的七层负载均衡选择,并且可以通过Nginx + Keepalived实现Nginx 负载均衡器双机互备,任意一...
关键词: nbsp Keepalived Nginx interface 192.168 script 监控 vrrp email virtual

  对于中、小型企业,如果没有资金去购买昂贵的四/七层负载均衡交换机,那么Nginx是不错的七层负载均衡选择,并且可以通过Nginx + Keepalived实现Nginx 负载均衡器双机互备,任意一台机器发生故障,对方都能够将虚拟IP接管过去。以下内容为第三次更新了,下面将其安装步骤详细说明下:  一、安装nginx,上一篇已经有安装步骤,请看上一篇文章 二、安装keepalived keepalived 下载地址:http://www.keepalived.org/software/wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gztar zxvf keepalived-1.2.2.tar.gzcd keepalived-12.2./configure --prefix=/usr/local/keepalivedmake make installcp /usr/local/keepalived/sbin/keepalived /usr/sbin/cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/mkdir /etc/keepalivedcd /etc/keepalived/   主配置文件 vim keepalived.conf  global_defs {        ####全局定义       notification_email {        #####指定keepalived在发生事件时(比如切换),需要发送的email对象,可以多个,每行一个        [email protected]       }       notification_email_from [email protected]       smtp_server 127.0.0.1          #####指定发送email的smtp服务器       smtp_connect_timeout 30       router_id LVS_DEVEL          #######运行keepalived的机器的一个标识    }    vrrp_sync_group VG1 {      group {        VI_1        VI_2       }    }    vrrp_script chk_nginx {            script    "/etc/chk_nginx.sh"     ###监控脚本            interval 2      ###监控时间            #weight -2         }    vrrp_instance VI_1 {        state MASTER               interface eth0     #    track_interface {    #       eth0    #       eth1    #   }        virtual_router_id 51      #VRID标记 master和backup必须一致        mcast_src_ip 192.168.2.113       #发送多播包的地址,如果不设置默认使用绑定的网卡的primary ip        priority 150              advert_int 1        authentication {            auth_type PASS            auth_pass 1111        }       track_script {            chk_nginx         ### 就是上面vrrp_script后面的实例名称   执行监控的服务        }        virtual_ipaddress {           192.168.2.116            }    }        vrrp_instance VI_2 {        state BACKUP               interface eth0      tual_router_id 52        mcast_src_ip 192.168.100.113        priority 149           advert_int 1        authentication {            auth_type PASS            auth_pass 1111        }    #    track_interface {    #       eth0    #       eth1    #    }        virtual_ipaddress {           192.168.100.117            }    }     另一主的配置文件    global_defs { ####全局定义 notification_email { #####指定keepalived在发生事件时(比如切换),需要发送的email对象,可以多个,每行一个 123.com } notification_email_from [email protected] smtp_server 127.0.0.1 #####指定发送email的smtp服务器 smtp_connect_timeout 30 router_id LVS_DEVEL #######运行keepalived的机器的一个标识 } vrrp_sync_group VG1 { group { VI_1 VI_2 } } vrrp_script chk_nginx { script "/etc/chk_nginx.sh" ###监控脚本 interval 2 ###监控时间 #weight -2 } vrrp_instance VI_1 { state BACKUP interface eth0 # track_interface { # eth0 # eth1 # } virtual_router_id 51 #VRID标记 master和backup必须一致 mcast_src_ip 192.168.2.112 #发送多播包的地址,如果不设置默认使用绑定的网卡的primary ip priority 149 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.2.116 } } vrrp_instance VI_2 { state MASTER interface eth0 tual_router_id 52 mcast_src_ip 192.168.100.112 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { chk_nginx ### 就是上面vrrp_script后面的实例名称 执行监控的服务 } # track_interface { # eth0 # eth1 } virtual_ipaddress { 192.168.100.117 } } ###以上配置在写的时候一定要注意有空格的地方一定要加上(很多小的细节一定要注意) 下面是 自己定义监控nginx的脚本 chk_nginx.sh  vim  chk_nginx.sh  #!/bin/bash  url="http://192.168.100.1/index.html" status=$(/usr/bin/curl -s --head "$url"|awk '/HTTP/ {print $2}')  if[ "$status" != "200" ]; then  /etc/init.d/keepalived stop  fi 
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部