Nginx Master: 192.168.128.134
Nginx Backup: 192.168.128.138
VIP:192.168.128.177
Nginx安装见nginx安装配置文档
Master与Backup的Nginx配置一致.
在MASTER跟BACKUP上安装Keepalived:
#tar zxvf keepalived-1.1.15.tar.gz -C ../software
#cd ../software/keepalived-1.1.15
#./configure –prefix=/usr/local/keepalived && make && make install
#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
#mkdir /etc/keepalived
#cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
#cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
#service keepalived start|stop #做成系统启动服务方便管理.
修改MASTER 的keepalived.conf
# /etc/keepalived/keepalived.conf
vrrp_script chk_http_port {
script "/usr/local/scripts/nginx_pid.sh" ###监控脚本
interval 2 ###监控时间
weight 2
}
vrrp_instance VI_1 {
state MASTER ### 设置为 主
interface eth0 ### 监控网卡
virtual_router_id 51 ### 这个两台服务器必须一样
priority 101 ### 权重值 MASTRE 一定要高于 BAUCKUP
authentication {
auth_type PASS ### 加密
auth_pass test ### 加密的密码,两台服务器一定要一样,不然会出错
}
track_script {
chk_http_port ### 执行监控的服务
}
virtual_ipaddress {
192.168.128.177 ### VIP 地址
}
}
修改BACKUP keepalived.conf
# /etc/keepalived/keepalived.conf
vrrp_script chk_http_port {
script "/opt/nginx_pid.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP ### 设置为备份机
interface eth0
virtual_router_id 51 ### 与 MASTRE 设置 值一样
priority 80 ### 比 MASTRE权重值 低
authentication {
auth_type PASS
auth_pass test ### 密码 与 MASTRE 一样
}
track_script {
chk_http_port
}
virtual_ipaddress {
192.168.128.177
}
}
编写监控nginx监控脚本
#vim /usr/local/scripts/nginx_pid.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l` ## 查看是否有 nginx进程 把值赋给变量A
if [ $A -eq 0 ];then ## 如果没有进程值得为 零
/usr/local/nginx/sbin/nginx
sleep 3
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived ## 则结束 keepalived 进程
fi
fi
测试,分别在两个服务器 启动 nginx 和 keepalived
#/usr/local/nginx/sbin/nginx
#/etc/init.d/keepalived start
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/deccmtd/archive/2010/05/17/5600643.aspx
评论