backlu 2012-05-19
Nginx进程基于于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能。在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都 由主进程发出,Slave(worker)进程所有的超时任务都会被Master中止,属于非阻塞式任务模型。
Keepalived是Linux下面实现VRRP 备份路由的高可靠性运行件。基于Keepalived设计的服务模式能够真正做到主服务器和备份服务器故障时IP瞬间无缝交接,作用:主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现
Nginx有很强代理功能,但是一台nginx就形成了单点,现在使用keepalived来解决这个问题,keepalived的故障转移时间很短.Nginx+keepalived双机实现nginx反向代理服务的高可用,一台nginx挂掉之后不影响应用也不影响内网访问外网。
一、环境:
rhel5、nginx-0.7.51、keepalived-1.1.15
master:192.168.126.173
slave:192.168.126.176
vip:192.168.200.16
二:安装nginx(两台安装配置都一样!)
#添加运行nginx的用户和组www
groupadd www
useradd -g www www
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.8.tar.gz
tar zxvf pcre-7.8.tar.gz
cd pcre-7.8/
./configure
make && make install
wget http://sysoev.ru/nginx/nginx-0.7.51.tar.gz
tar zxvf nginx-0.7.51.tar.gz
cd nginx-0.7.51/
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
三:安装keepalived
wget http://www.keepalived.org/software/keepalived-1.1.15.tar.gz
tar zxvf keepalived-1.1.15.tar.gz
cd keepalived-1.1.15
ln -s /usr/src/kernels/2.6.18-164.el5-i686/ /usr/src/linux(这里为什么做软链接后面说!)
./configure --prefix=/usr --exec-prefix=/usr \
--bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share \
--includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec \
--localstatedir=/var --mandir=/usr/share/man --infodir=/usr/share/info \
--sharedstatedir=/usr/com \
--with-kernel-dir=/usr/src/linux(这里指定的是软链接路径!!)
make
make install
启动nginx!/usr/local/nginx/sbin/nginx
环境说明:本环境由两台mysql 数据库和heartbeat 组成,一台的ip 为192.168.10.197,一台为192.168.10.198,对外提供服务的vip 为192.168.10.200