Nginx HA (主从模式)
2012-06-18 11:53
274 查看
要想生活过的好,就要学习学到老。。。
最近学习了Nginx HA,跟大家分享下。
言归正传,先上原理图
通过keepalived提供的VRRP,以及心跳监测技术实现两台主机的双击热备功能。
实验环境:
系统:RHEL6.1
Nginx:nginx-1.0.8 (http://nginx.org/en/download.html)
Pcre: Pcre-8.13 (http://sourceforge.net/projects/pcre/files/pcre/8.13/pcre-8.13.tar.gz/download)
Google-perftools:google-perftools-1.7 (http://code.google.com/p/gperftools/downloads/list)
Keepalived: keepalived-1.2.2 (http://www.keepalived.org/download.html)
安装过程:
Nginx安装:
1. 安装PCRE(正则匹配)模块
tar -zxvf pcre-8.13.tar.gz
cd pcre-8.13
./configure
make && make install
2. 安装google-perftool(google高性能内存操作模块)
tar -zxvf nginx-1.0.8.tar.gz –C /tmp
cd nginx-1.0.8
./configure
make && make install
3.安装nginx
tar zxvf nginx-1.0.8.tar.gz
cd nginx-1.0.8
./configure --user=nobody --group=nobody #指定运行nginx的用户
--prefix=/usr/local/nginx \ #指定安装位置
--with-http_stub_status_module \ #nginx状态监控模块
--with-http_ssl_module \ #https 支持模块
--with-http_flv_module \ #流媒体支持模块
--with-http_gzip_static_module \ #gzip支持模块
--with-google_perftools_module #goole-perftools支持模块
make && make install
keepalived安装
1. 安装Keepalived
tar -zxvf keepalived-1.2.2.tar.gz
cd keepalived-1.2.2
./configure --prefix=/usr/local/keepalived
make && make install
2. 配置Keepalived
编辑keepalived主配置文件/etc/keepalived/keepalived.conf,如下:
global_defs { #全局配置
notification_email { #邮件通知
linuxsong49@163.com
}
notification_email_from nginx@gyyx.cn
smtp_server 127.0.0.1
smtp_connect_timemout 30
router_id nginx.gyyx.cn #router_id 配置(主从必须一致,也可以默认不改)
}
vrrp_script check_run { #nginx监控脚本配置
script"/home/check_nginx.sh" #脚本位置
weight -5 #优先级-5
interval 5 #检查5次
}
vrrp_instance VI_1 { #监控实例配置
state MASTER #标记状态为主
interface eth0 #监听网卡
virtual_router_id 60 #实例router_id
priority 100 #优先级(优先级大者为主)
mcast_src_ip 192.168.10.2 #广播地址(本地IP)
authentication { #主从认证配置
auth_type PASS
auth_pass 1q2w3e4r
}
track_script { #启用监控脚本
check_run
}
virtual_ipaddress { #虚拟IP配置
192.168.10.100/24 dev eth0
}
virtual_routes { #虚拟路由配置
0.0.0.0/0.0.0.0 via192.168.10.100 dev eth0
}
}
3. Nginx监控脚本配置
监控脚本主要通过访问本地的80端口(nginx.conf里配置的监控url),去监控Nginx的服务状态,如果没有问题返回0,如果有问题返回1
#!/bin/bash
#This script is used by keepalived for checking nginx running status
CHECK_TIME=2
check()
{
curl -m 2 http://127.0.0.1/status >/dev/null 2>&1
return $?
}
while [ $CHECK_TIME -ne 0 ]
do
let "CHECK_TIME -= 1"
check
NGINX_OK=$?
if [ $NGINX_OK -eq 0 ];then
exit 0
fi
if [ $NGINX_OK -ne 1 ] && [ $CHECK_TIME -eq 0 ]
then
exit 1
fi
done
4. 编辑nginx配置文件,加入如下内容
location /status {
stub_status on;
access_log off;
以上只是主Keepalived的配置文件,可以将配置文件scp到从的上面,然后修改标注状态为MASTER,优先级小于100即可。
5.测试Nginx可以正常启动,访问本地的http://127.0.0.1/status可以正常提供服务,模拟宕机,另外一台接管。
本文出自 “我的未来不是梦。” 博客,请务必保留此出处http://song49.blog.51cto.com/4480450/901459
最近学习了Nginx HA,跟大家分享下。
言归正传,先上原理图
通过keepalived提供的VRRP,以及心跳监测技术实现两台主机的双击热备功能。
实验环境:
系统:RHEL6.1
Nginx:nginx-1.0.8 (http://nginx.org/en/download.html)
Pcre: Pcre-8.13 (http://sourceforge.net/projects/pcre/files/pcre/8.13/pcre-8.13.tar.gz/download)
Google-perftools:google-perftools-1.7 (http://code.google.com/p/gperftools/downloads/list)
Keepalived: keepalived-1.2.2 (http://www.keepalived.org/download.html)
安装过程:
Nginx安装:
1. 安装PCRE(正则匹配)模块
tar -zxvf pcre-8.13.tar.gz
cd pcre-8.13
./configure
make && make install
2. 安装google-perftool(google高性能内存操作模块)
tar -zxvf nginx-1.0.8.tar.gz –C /tmp
cd nginx-1.0.8
./configure
make && make install
3.安装nginx
tar zxvf nginx-1.0.8.tar.gz
cd nginx-1.0.8
./configure --user=nobody --group=nobody #指定运行nginx的用户
--prefix=/usr/local/nginx \ #指定安装位置
--with-http_stub_status_module \ #nginx状态监控模块
--with-http_ssl_module \ #https 支持模块
--with-http_flv_module \ #流媒体支持模块
--with-http_gzip_static_module \ #gzip支持模块
--with-google_perftools_module #goole-perftools支持模块
make && make install
keepalived安装
1. 安装Keepalived
tar -zxvf keepalived-1.2.2.tar.gz
cd keepalived-1.2.2
./configure --prefix=/usr/local/keepalived
make && make install
2. 配置Keepalived
编辑keepalived主配置文件/etc/keepalived/keepalived.conf,如下:
global_defs { #全局配置
notification_email { #邮件通知
linuxsong49@163.com
}
notification_email_from nginx@gyyx.cn
smtp_server 127.0.0.1
smtp_connect_timemout 30
router_id nginx.gyyx.cn #router_id 配置(主从必须一致,也可以默认不改)
}
vrrp_script check_run { #nginx监控脚本配置
script"/home/check_nginx.sh" #脚本位置
weight -5 #优先级-5
interval 5 #检查5次
}
vrrp_instance VI_1 { #监控实例配置
state MASTER #标记状态为主
interface eth0 #监听网卡
virtual_router_id 60 #实例router_id
priority 100 #优先级(优先级大者为主)
mcast_src_ip 192.168.10.2 #广播地址(本地IP)
authentication { #主从认证配置
auth_type PASS
auth_pass 1q2w3e4r
}
track_script { #启用监控脚本
check_run
}
virtual_ipaddress { #虚拟IP配置
192.168.10.100/24 dev eth0
}
virtual_routes { #虚拟路由配置
0.0.0.0/0.0.0.0 via192.168.10.100 dev eth0
}
}
3. Nginx监控脚本配置
监控脚本主要通过访问本地的80端口(nginx.conf里配置的监控url),去监控Nginx的服务状态,如果没有问题返回0,如果有问题返回1
#!/bin/bash
#This script is used by keepalived for checking nginx running status
CHECK_TIME=2
check()
{
curl -m 2 http://127.0.0.1/status >/dev/null 2>&1
return $?
}
while [ $CHECK_TIME -ne 0 ]
do
let "CHECK_TIME -= 1"
check
NGINX_OK=$?
if [ $NGINX_OK -eq 0 ];then
exit 0
fi
if [ $NGINX_OK -ne 1 ] && [ $CHECK_TIME -eq 0 ]
then
exit 1
fi
done
4. 编辑nginx配置文件,加入如下内容
location /status {
stub_status on;
access_log off;
以上只是主Keepalived的配置文件,可以将配置文件scp到从的上面,然后修改标注状态为MASTER,优先级小于100即可。
5.测试Nginx可以正常启动,访问本地的http://127.0.0.1/status可以正常提供服务,模拟宕机,另外一台接管。
本文出自 “我的未来不是梦。” 博客,请务必保留此出处http://song49.blog.51cto.com/4480450/901459
相关文章推荐
- nginx + keepalived 实现HA 主从模式
- Nginx+keepalived双机热备(主从模式)
- Nginx+keepalived双机热备(主从模式)
- keepalived + nginx 主从模式实现高可用
- 使用Keepalived配置主从热备实现Nginx高可用(HA)
- Nginx+keepalived双机热备(主从模式)
- Nginx+keepalived双机热备(主从模式)
- keepalived+nginx(主从模式)
- 【Nginx】Tengine+Keepalived实现主从模式双机热备
- Nginx+keepalived双机热备(主从模式)
- Nginx + keepalived 实现高可用HA 【主从架构】
- keepalived+nginx双机热备(HA高可用,单主从非双主,双主配置文件需要把ip配两个相反的,nginx负载均衡需要参考下文末尾超链接)
- MySql高可用性HA主从配置(双主双从HA模式)
- 攻城狮在路上(陆)-- hadoop分布式环境搭建(HA模式)
- ModBus通信协议的【主从模式】
- 让nginx支持文件上传的几种模式
- 社交网站部署——Nginx服务器+PHP服务器搭建+MySQL主从集群
- Nginx Upstream 实现简单双机主从热备
- ZooKeeper主从模式的三种角色(以Client为例)
- HC05的主从模式