Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2114825
  • 博文数量: 227
  • 博客积分: 10521
  • 博客等级: 上将
  • 技术积分: 3452
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-20 14:59
个人简介

低调做人,高调做事!

文章分类

全部博文(227)

文章存档

2013年(4)

2012年(8)

2011年(16)

2010年(24)

2009年(92)

2008年(83)

分类: LINUX

2010-11-10 16:17:00

目前项目已经采用nginx来实现负载均衡,但是nginx调度器只有一台,上次还意外的down机一次,导致整个服务应用全部瘫痪,这次准备再加一个调度器来实现站点高可用性,也就是常说的双机热备了。

master: 192.168.1.241
backup: 192.168.1.242
漂移IP:192.168.1.243


1,主备调度器都安装keepalived软件
安装过程如下:

./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

可以先用命令 service keepalived start 启动进行测试,看进程能够启动,注意查看log.

2,主调度器配置如下:

! Configuration File for keepalived

global_defs {
    router_id LVS_DEVEL
}

vrrp_sync_group VG_1 {
    group {
        VI_1
    }
    notify_master /etc/keepalived/sendmail.pl
}

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.1.243
    }
}


2,备调度器配置如下:

! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL
}

vrrp_sync_group VG_1 {
    group {
    VI_1
    }
    notify_master /etc/keepalived/sendmail.pl
}


vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.243
    }
}


3,发送邮件的perl脚本sendmail.pl内容如下:
注意主备发送邮件的标题是不一致的,只要你能识别漂移IP在哪台服务器上即可。

#!/usr/bin/perl -w

use Net::SMTP_auth;
use strict;


my $mailhost = 'smtp.163.com';
my $mailfrom = 'test@163.com';
my @mailto   = ('123456@139.com');
my $subject  = 'keepalived up on backup';

my $user   = 'test';
my $passwd = 'test';

&SendMail();

##############################
# Send notice mail
##############################
sub SendMail() {

    my $smtp = Net::SMTP_auth->new( $mailhost, Timeout => 120, Debug => 1 )
      or die "Error.\n";
    $smtp->auth( 'LOGIN', $user, $passwd );

    foreach my $mailto (@mailto) {
        $smtp->mail($mailfrom);
        $smtp->to($mailto);
        $smtp->data();
        $smtp->datasend("To: $mailto\n");
        $smtp->datasend("From:$mailfrom\n");
        $smtp->datasend("Subject: $subject\n");
        $smtp->datasend("\n");
        $smtp->dataend();
    }

    $smtp->quit;
}


说明:
a、由于keeplived自带的发送邮件机制是个鸡肋,如果本地不启动25端口就无法实现邮件发送,就琢磨着能不能通过自定义脚本来实现,真的是很幸运,就采用了认证的方式。

b、其他的配置说明就不详细讲了,网上很多资料。


4,测试keepalived
主备调度器都开启80端口,两台服务器上的测试内容不一致,这样更方便测试。
阅读(4174) | 评论(3) | 转发(1) |
给主人留下些什么吧!~~

chinaunix网友2010-12-30 14:02:25

全球盾GS双机热备软件,全球盾GS实时备份软件,全球盾GS员工管理软件,以及EUBASE (SQL server数据库双机热备,实时备份)(东软OpenBASE数据库双机热备,实时备份) (Oracle数据库双机热备,实时备份) (KingbaseES数据库双机热备,实时备份) (Mysql数据库双机热备,实时备份) (interBsae数据库双机热备,实时备份) (Sybase数据库双机热备,实时备份) (PostgrSQL数据库双机热备,实时备份) (文件 双机热备,实时备份) (清华同方KBase数据库双机热备,实时备份) (DB2数据库双机热备,实时备份) (神通数据库双机热备,实时备份) (DBC2000数据库双机热备,实时备份) (DBSter数据库双机热备,实时备份) (informix数据库双机热备,实时备份) ( Visual FoxPro数据库双机热备,实时备份) (Domino数据库双机热备,实时备份) (达梦数据库双机热备,实时备份) (Access数据库双机热备,

chinaunix网友2010-11-12 08:34:32

很高兴认识你,看看我的博客中的文章吧,对生活很有好处,下面是一些推荐的链接。 电脑一族必看的科学饮食 http://blog.chinaunix.net/u3/119126/showart_2337806.html 抵御电脑辐射从吃开始 http://blog.chinaunix.net/u3/119126/showart_2337785.html 上班族的五种防病食物 http://blog.chinaunix.net/u3/119126/showart_2337764.html 哪些人群最应该喝酸奶 http://blog.chinaunix.net/u3/119126/showart_2337734.html 计算机族必喝的健康饮料 http://blog.chinaunix.net/u3/119126/showart_2337676.html

chinaunix网友2010-11-10 19:53:09

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com