nginx + keepalived 实现热备负载

概况:

服务器两台:

192.168.200.97(nginx+keepalived )

192.168.200.98(nginx+keepalived )

keepalived 会将vip  绑定到选举的master机器上。

master down机或者 监控的端口异常。backup机器会绑定vip 并广播arp,将vip 绑定到自己的 mac 地址上。 这就是很多人提到的 VIP 漂动。





1.安装nginx

进入官网下载: http://nginx.org/en/download.html

或者 csdn 下载   http://download.csdn.net/detail/wujiandao001/9488428

解压  tar -zxvf nginx-1.8.1.tar.gz

安装:

./configure --prefix=/usr/local/nginx
make
make install

启动:/usr/local/nginx/sbin/nginx


测试:

nginx  默认监控 80端口 提供服务 直接访问服务器iphttp://192.168.200.3/

启动成功


2.安装配置 keepalived

安装:

centOS6.5下安装 挺麻烦 参考上一节:

centOS 6.5 安装 keepalived

配置

分别在主从机器上 找到keepalived 对应的confg文件

/usr/local/keepalived/etc/keepalived/keepalived.conf


master(192.168.200.97)机器如下修改

global_defs {
   router_id nginxTest
}

vrrp_script chk_nginx_port {
        script "/usr/local/mybash/check_nginx.sh"
        interval 2
        weight -30
}


vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.200.3/24
    }
        track_script {
                chk_nginx_port
        }

}
 对应的 /usr/local/mybash/check_nginx.sh        nginx 监控 脚本
#!/bin/bash
#checking nginx
echo "---------------------------"
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
		echo "nginx start failed  kill keepalived"
		killall keepalived
fi
注意:window上传的 check_nginx.sh 可能还是 dos格式  执行会报如下错误

[root@192 aaa]# ./check_nginx.sh
-bash: ./check_nginx.sh: /bin/bash^M: bad interpreter: No such file or directory

需要将shell 文件改成 unix 格式

可以 vi 编辑器里面  :set ff=unix

或者       dos2unix check_nginx.sh  (需要dos2unix 包)

backup 节点(192.168.200.98)

global_defs {
   router_id nginxTest
}

vrrp_script chk_nginx_port {
	script "/usr/local/mybash/check_nginx.sh"    #检测脚本 路径
	interval 2    #检测频率  2s
	weight -30
}


vrrp_instance VI_1 {
    state BACKUP   #启动角色
    interface eth0 #监听网卡
    virtual_router_id 51 #虚拟路由ID  一定要跟 master 配置 保持一致
    priority 90     #优先级 要比master 小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.200.3/24       #vip
    }
	track_script {
		chk_nginx_port
	}

}


BACKUP 上也需要 拷贝一份 一样的 对应的 /usr/local/mybash/check_nginx.sh        nginx 监控 脚本 。


启动主备机 keepalived

/usr/local/keepalived/sbin/keepalived -D -f /usr/local/keepalived/etc/keepalived/keepalived.conf


查看日志

tail -f /var/log/messages




先简单记录下,以后再细化。





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值