概况:
服务器两台:
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下安装 挺麻烦 参考上一节:
配置
分别在主从机器上 找到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
先简单记录下,以后再细化。