Keeplived配置Nginx双机高可用

一、简介不管是Keepalived还是Heartbeat做高可用,虚拟主机,其高可用,都是站在服务器脚本去说的高可用,香港虚拟主机,而不是服务的角度。也就是说,香港服务器,如果服务器DOWN机或者网络出现故障,高可用是可以实现自动切换的。如果运行的服务,比如Nginx挂掉这些高可用软件是意识不到的,需要自己写脚本去实现服务的切换。二、安装配置Keepalived

复制内容到剪贴板代码:# ./configure# make# make install# cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/# cp /usr/local/sbin/keepalived /usr/bin/# chkconfig –add keepalived# mkdir /etc/keepalived/# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

编辑MASTER的主配置文件(MASTER: 1.1.1.1)

复制内容到剪贴板代码:# vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs { router_id LVS_DEVEL}vrrp_script chk_nginx { script "/opt/monnginx.sh" interval 2 weight 2}vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass mdnginx } virtual_ipaddress { 1.1.1.100 } track_script { chk_nginx}}

编辑BACKUP的主配置文件(BACKUP:1.1.1.2)

复制内容到剪贴板代码:# vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs { router_id LVS_DEVEL}vrrp_script chk_nginx { script "/opt/monnginx.sh" interval 2 weight 2}vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass mdnginx } virtual_ipaddress { 1.1.1.100 } track_script { chk_nginx}}

三、启动服务与脚本编写(主机和备机都要执行)

复制内容到剪贴板代码:# service nginx start# service keepalived start

编写监控Nginx的脚本

复制内容到剪贴板代码:# vim /opt/monnginx.sh#!/bin/bash# author: honway.liu# date: 2013-03-15if [ $(ps -C nginx –no-header | wc -l) -eq 0 ]; then service nginx startfisleep 3if [ $(ps -C nginx –no-header | wc -l) -eq 0 ]; then service keepalived stopfi

改进脚本,加上报警功能。

复制内容到剪贴板代码:# vim /opt/monnginx.sh#!/bin/bash# author: honway.liu# date: 2013-03-15IPADDR=$(ip addr show eth0|awk ‘{print $2}’ | sed -n 3p)contact=(137XXXXXXXX@139.com)num=${#contact[@]}function email() {for ((i=0;i<num;i++));do echo "$IPADDR service problem" | mail -s "WARNING" ${contact[i]} — -f gm100861@gmail.comdone}if [ $(ps -C nginx –no-header | wc -l) -eq 0 ]; then service nginx startfiemailsleep 3if [ $(ps -C nginx –no-header | wc -l) -eq 0 ]; then service keepalived stopemailfi

这里的报警使用的是139邮箱,在139邮箱里面设置有邮件的时候,通知到手机,并且以长短信的方式。需要开户本机的sendmail服务。

本文出自 “吖吖個呸” 博客,请务必保留此出处

不论你在什么时候结束,重要的是结束之后就不要悔恨

Keeplived配置Nginx双机高可用

相关文章:

你感兴趣的文章:

标签云: