Centos下安装、Nginx笔记(三) 代理服务器keepalived的安装及配置
时间:2014-05-15 02:05 来源:linux.it.net.cn 作者:it
那准备开始
三、搭建nginx代理服务器集群,实现热备;
1、环境准备
Nginx反向代理服务器-主:
系统 Centos 5.4 + ngix
外网IP: 60.x.x.13
内网IP: 192.168.10.13
Nginx反向代理服务器-从:
系统 Centos 5.4 + ngix ( 参考Centos下安装、Nginx笔记(一) 简单安装, Centos下安装、Nginx笔记(二) 简单负载均衡搭建好)
外网IP: 60.x.x.14
内网IP: 192.168.10.14
反向代理主服务器与反向代理从服务器 使用共同的集群(虚拟)IP: 60.x.x.15
web1服务器:
系统: windows 2003 IIS
内网 ip: 192.168.10.2
web2服务器:
系统windows 2003+IIS
内网 ip 192.168.10.3 (2/3的页面内容设置不一样以便最后测试的时候进行查看)
A) 先代理主服务器操作:
安装配置Keepalived
软件源代码包存放位置:/usr/local/src
源码包编译安装位置:/usr/local/软件名字
1).下载所需要的软件
#wget http://keepalived.org/software/keepalived-1.2.7.tar.gz
#wget http://rpm5.org/files/popt/popt-1.16.tar.gz
2) .安装popt
编译keepalived时需要popt,否则会报以下错误:
configure: error: Popt libraries is required
#tar -zxvf popt-1.16.tar.gz
#cd popt-1.16
#./configure
#make
#make install
3.安装keepalived
#tar -zxvf keepalived-1.2.7.tar.gz
#cd keepalived-1.2.7
#./configure --prefix=/usr/local/keepalived
#make
#make install
4.修改配置文件为以下内容:
#vim /usr/local/keepalived/etc/keepalived/keepalived.conf
------------------------------------keepalived.conf----------------------------------------
点击(此处)折叠或打开
-
! Configuration File for keepalived
-
-
-
-
global_defs {
-
-
router_id LVS_DEVEL
-
-
}
-
-
vrrp_script Monitor_Nginx {
-
-
script "/root/scripts/monitor_nginx.sh" #monitor_nginx.sh为监控nginx进程的脚本, 根据自己的实际路径放置
-
-
interval 2
-
-
weight 2
-
-
}
-
-
vrrp_instance VI_1 {
-
-
state MASTER #主机为MASTER,备用机为BACKUP
-
-
interface eth0 #(HA监测网络接口)
-
-
virtual_router_id 51 #(主、备机的virtual_router_id必须相同)
-
-
priority 100 #(主、备机取不同的优先级,主机值较大,备份机值较小,值越大优先级越高)
-
-
advert_int 1 #(VRRP Multicast广播周期秒数)
-
-
authentication {
-
-
auth_type PASS #(VRRP认证方式)
-
-
auth_pass 1234 #(主、备机密码必须相同)
-
-
}
-
-
track_script {
-
-
Monitor_Nginx #调用nginx进程检测脚本 vrrp_script Monitor_Nginx
-
-
}
-
-
virtual_ipaddress {
-
-
60.x.x.15 #(VRRP HA虚拟地址,既集群IP地址)
-
-
}
-
-
}
vi /root/scripts/monitor_nginx.sh
=====================================
点击(此处)折叠或打开
-
#!/bin/bash
-
-
if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
-
-
then
-
-
/usr/local/nginx/sbin/nginx
-
-
sleep 5
-
-
if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
-
-
then
-
-
killall keepalived
-
-
fi
-
-
fi
=======================================
#chmod +x monitor_nginx.sh
#nohup/bin/bash /root/scripts/monitor_nginx.sh &
网上看到有个兄弟写的关于运行脚本的个人想法,我就拿过来试了:
然后置于后台运行 sh /root/monitor_nginx.sh &,这种写法是错误的,这样你用root用户logout后,此进程会消失;正确写法为nohup/bin/bash /root/monitor_nginx.sh &,附带下注释:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出root帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)
==================================================
建立服务启动脚本,以便使用service命令控制之
方法一:
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/sbin/keepalived /bin/
chkconfig --add keepalived
chmod 755 /etc/init.d/keepalived
chkconfig keepalived on
service keepalived start
方法二:
1、
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
chmod +x /etc/init.d/keepalived
因为我们使用非默认路径(/usr/local)安装keepalived, 故需要修改几处路径,以保证keepalived能正常启动, 需要修改的文件如下:
2. 修改/etc/init.d/keepalived, 寻找大约15行左右的. /etc/sysconfig/keepalived, 修改为:
. /usr/local/keepalived/etc/sysconfig/keepalived, 即指向正确的文件位置
同时在上述行下添加以下内容(将keepavlied主程序所在路径导入到环境变量PATH中):
PATH="$PATH:/usr/local/keepalived/sbin"
export PATH
3. 修改/usr/local/keepalived/etc/sysconfig/keepalived文件,设置正确的服务启动参数
KEEPALIVED_OPTIONS="-D -f /usr/local/keepalived/etc/keepalived/keepalived.conf"
4. 经过以上修改,keepalived基本安装即可完成,启动测试之:
service keepalived restart
5. 切勿忘记将此服务设置为开机启动
chkconfig keepalived on
========================================================================
B) 代理从服务器操作:
除了keepalived.conf 配置有点差异,其他安装步骤参考主服务器
#vim /usr/local/keepalived/etc/keepalived/keepalived.conf
------------------------------------keepalived.conf----------------------------------------
点击(此处)折叠或打开
-
! Configuration File for keepalived
-
-
-
-
global_defs {
-
-
router_id LVS_DEVEL
-
-
}
-
-
vrrp_script Monitor_Nginx {
-
-
script "/root/scripts/monitor_nginx.sh" #monitor_nginx.sh为监控nginx进程的脚本, 根据自己的实际路径放置
-
-
interval 2
-
-
weight 2
-
-
}
-
-
vrrp_instance VI_1 {
-
-
state BACKUP #主机为MASTER,备用机为BACKUP,不一致处
-
-
interface eth0 #(HA监测网络接口)
-
-
virtual_router_id 51 #(主、备机的virtual_router_id必须相同)
-
-
priority 50 #(主、备机取不同的优先级,主机值较大,备份机值较小,值越大优先级越高),不一致处
-
-
advert_int 1 #(VRRP Multicast广播周期秒数)
-
-
authentication {
-
-
auth_type PASS #(VRRP认证方式)
-
-
auth_pass 1234 #(主、备机密码必须相同)
-
-
}
-
-
track_script {
-
-
Monitor_Nginx #调用nginx进程检测脚本 vrrp_script Monitor_Nginx
-
-
}
-
-
virtual_ipaddress {
-
-
60.x.x.15 #(VRRP HA虚拟地址,既集群IP地址)
-
-
}
-
-
}
C、测试环节
集群IP: 60.x.x.15
_____________|_____________
60.x.x.13 60.x.x.14
主代理nginx 从代理nginx
192.168.10.13 192.168.10.14
---------------|-----------------
web1: 192.168.10.2 web2: 192.168.10.3
注明:
在Centos下安装、Nginx笔记(二) 简单负载均衡已经说明,
访问代理服务器http://60.x.x.13访问的是Nginx代理服务器自身的网站
访问代理服务器http://60.x.x.13:8800时实现跳转到内网2台web服务器进行负载;
看简单拓扑图,现测试内容如下:
修改主代理服务器nginx/html/index.html内容编辑为 这是60.x.x.13主服务器:
修改从代理服务器nginx/html/index.html内容编辑为 这是60.x.x.14从服务器:
修改web1服务器: index.html内容编辑为 这是web1:192.168.10.2服务器
修改web2服务器: index.html内容编辑为 这是web1:192.168.10.3服务器
1. 访问VIP60.x.x.15:8800看是否能够正常访问后端的web1/web2
访问VIP60.x.x.15看是否能够正常访问nginx服务器的web
2. 停止其中一个web看是否能将访问转到另一台上
3. 停止两台nginx上任何一个nginx进程看监控进程脚本是否会自动启动nginx
4. 停止任何一台nginx上的keepalived进程看另一台是否接管vip60.x.x.15
(责任编辑:IT)
那准备开始 1、环境准备 Nginx反向代理服务器-主: 系统 Centos 5.4 + ngix 外网IP: 60.x.x.13 内网IP: 192.168.10.13
Nginx反向代理服务器-从: 系统 Centos 5.4 + ngix ( 参考Centos下安装、Nginx笔记(一) 简单安装, Centos下安装、Nginx笔记(二) 简单负载均衡搭建好) 外网IP: 60.x.x.14 内网IP: 192.168.10.14
反向代理主服务器与反向代理从服务器 使用共同的集群(虚拟)IP: 60.x.x.15
web1服务器: 系统: windows 2003 IIS 内网 ip: 192.168.10.2
web2服务器: 系统windows 2003+IIS 内网 ip 192.168.10.3 (2/3的页面内容设置不一样以便最后测试的时候进行查看) A) 先代理主服务器操作: 安装配置Keepalived
软件源代码包存放位置:/usr/local/src 源码包编译安装位置:/usr/local/软件名字
1).下载所需要的软件 #wget http://keepalived.org/software/keepalived-1.2.7.tar.gz #wget http://rpm5.org/files/popt/popt-1.16.tar.gz
2) .安装popt 编译keepalived时需要popt,否则会报以下错误: configure: error: Popt libraries is required
#tar -zxvf popt-1.16.tar.gz #cd popt-1.16 #./configure #make #make install
3.安装keepalived #tar -zxvf keepalived-1.2.7.tar.gz #cd keepalived-1.2.7 #./configure --prefix=/usr/local/keepalived #make #make install
4.修改配置文件为以下内容:
#vim /usr/local/keepalived/etc/keepalived/keepalived.conf ------------------------------------keepalived.conf---------------------------------------- 点击(此处)折叠或打开
vi /root/scripts/monitor_nginx.sh ===================================== 点击(此处)折叠或打开
======================================= #chmod +x monitor_nginx.sh #nohup/bin/bash /root/scripts/monitor_nginx.sh &
网上看到有个兄弟写的关于运行脚本的个人想法,我就拿过来试了: 然后置于后台运行 sh /root/monitor_nginx.sh &,这种写法是错误的,这样你用root用户logout后,此进程会消失;正确写法为nohup/bin/bash /root/monitor_nginx.sh &,附带下注释:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出root帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)
================================================== 建立服务启动脚本,以便使用service命令控制之 方法一: cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ cp /usr/local/keepalived/sbin/keepalived /bin/ chkconfig --add keepalived chmod 755 /etc/init.d/keepalived chkconfig keepalived on service keepalived start 方法二: 1、 cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
chmod +x /etc/init.d/keepalived
因为我们使用非默认路径(/usr/local)安装keepalived, 故需要修改几处路径,以保证keepalived能正常启动, 需要修改的文件如下:
2. 修改/etc/init.d/keepalived, 寻找大约15行左右的. /etc/sysconfig/keepalived, 修改为: . /usr/local/keepalived/etc/sysconfig/keepalived, 即指向正确的文件位置
同时在上述行下添加以下内容(将keepavlied主程序所在路径导入到环境变量PATH中):
PATH="$PATH:/usr/local/keepalived/sbin"
export PATH
3. 修改/usr/local/keepalived/etc/sysconfig/keepalived文件,设置正确的服务启动参数 KEEPALIVED_OPTIONS="-D -f /usr/local/keepalived/etc/keepalived/keepalived.conf"
4. 经过以上修改,keepalived基本安装即可完成,启动测试之: service keepalived restart
5. 切勿忘记将此服务设置为开机启动 chkconfig keepalived on ======================================================================== B) 代理从服务器操作: 除了keepalived.conf 配置有点差异,其他安装步骤参考主服务器 #vim /usr/local/keepalived/etc/keepalived/keepalived.conf ------------------------------------keepalived.conf---------------------------------------- 点击(此处)折叠或打开
C、测试环节 集群IP: 60.x.x.15 _____________|_____________ 60.x.x.13 60.x.x.14 主代理nginx 从代理nginx 192.168.10.13 192.168.10.14 ---------------|----------------- web1: 192.168.10.2 web2: 192.168.10.3 注明: 在Centos下安装、Nginx笔记(二) 简单负载均衡已经说明, 访问代理服务器http://60.x.x.13访问的是Nginx代理服务器自身的网站 访问代理服务器http://60.x.x.13:8800时实现跳转到内网2台web服务器进行负载;
看简单拓扑图,现测试内容如下: 修改主代理服务器nginx/html/index.html内容编辑为 这是60.x.x.13主服务器: 修改从代理服务器nginx/html/index.html内容编辑为 这是60.x.x.14从服务器: 修改web1服务器: index.html内容编辑为 这是web1:192.168.10.2服务器修改web2服务器: index.html内容编辑为 这是web1:192.168.10.3服务器 1. 访问VIP60.x.x.15:8800看是否能够正常访问后端的web1/web2 访问VIP60.x.x.15看是否能够正常访问nginx服务器的web 2. 停止其中一个web看是否能将访问转到另一台上 3. 停止两台nginx上任何一个nginx进程看监控进程脚本是否会自动启动nginx 4. 停止任何一台nginx上的keepalived进程看另一台是否接管vip60.x.x.15 (责任编辑:IT) |