主机:IP->192.168.88.60 nginx已安装OK(省略)
备机:IP->192.168.88.80 nginx已安装OK(省略)VIP:192.168.88.20第一步:主备一起安装keepalived
yum install -y keepalived第二步:配置/etc/keepalived/keepalived.conf
主机192.168.88.60配置如下:! Configuration File for keepalived
global_defs {
notification_email { #发生邮件目标地址} notification_email_from #发生邮件源地址
smtp_server 192.168.200.1 #SMTP 服务器地址
smtp_connect_timeout 30 router_id LVS_DEVEL} vrrp_script chk { script "/etc/chk_nginx.sh" interval 2 #间隔多久检测脚本 weight -20 #脚本返回结果非0,优先级减20}vrrp_instance VI_1 { state BACKUP #主的也设置备,以为主备取决于优先级 interface eth0 #对应网卡 virtual_router_id 51 priority 90 #优先级,谁大谁是主(取值1-255之间)#nopreempt #开启这个参数当优先级大的主服务恢复了也不抢占,以防跳来跳去
advert_int 1
authentication { auth_type PASS auth_pass 1111 #密码 } track_script { chk # 对应上面的监测脚本模块 } virtual_ipaddress { 192.168.88.20 #VIP地址 }}==============================================================备机配置: 192.168.88.80
! Configuration File for keepalived
global_defs {
notification_email { #发生邮件目标地址} notification_email_from #发生邮件源地址
smtp_server 192.168.200.1 #SMTP 服务器地址
smtp_connect_timeout 30 router_id LVS_DEVEL} vrrp_script chk { script "/etc/chk_nginx.sh" interval 2 #间隔多久检测脚本 weight -20 #脚本返回结果非0,优先级减20}vrrp_instance VI_1 { state BACKUP #设置备用状态 interface eth0 #对应网卡 virtual_router_id 51 priority 80 #优先级(90-20=70 小于80,如果主服务没有问题,优先级为90,如果有问题优先级变为70,备的设置为80,80>70 所以备成主接管) advert_int 1 authentication { auth_type PASS auth_pass 1111 #密码 } track_script { chk # 对应上面的监测脚本模块 } virtual_ipaddress { 192.168.88.20 #VIP地址 }}#注意不要少大括号哦
============================================
第三步:编写/etc/chk_nginx.sh脚本内容
#!/bin/bash
nginx_pid_count=`lsof -i :80 |wc -l`if [ ${nginx_pid_count} -eq 0 ];then exit 1else exit 0fifi给脚本权限 chmod +x /etc/chk_nginx.sh
第四步:启动主备keepalived
Service keepalived startip addr 查看vip是否起来了#主服务器上关闭服务
/etc/init.d/nginx stop
#在从服务器上查看VIP有无绑定ip addr
备注:
1 如果没有成功检测是不是{ }少写了
2 sh 测试监控脚本是否正确