nginx + keepalived 实现热备负载

来源:互联网 发布:淘客cms源码带优惠券 编辑:程序博客网 时间:2024/06/07 04:06

概况:

服务器两台:

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 nginxecho "---------------------------"if [ `ps -C nginx --no-header |wc -l` -eq 0 ];thenecho "nginx start failed  kill keepalived"killall keepalivedfi
注意: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    #检测频率  2sweight -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
原创粉丝点击