要想生活过的好,就要学习学到老。。。
最近学习了Nginx HA,跟大家分享下。感谢在学习中为我解决困难的--凌杰。
言归正传,先上原理图
通过keepalived提供的VRRP,以及心跳监测技术实现两台主机的双击热备功能。
实验环境:
系统:RHEL6.1
Nginx:nginx-1.0.8 ()
Pcre: Pcre-8.13 ()
Google-perftools:google-perftools-1.7 ()
Keepalived: keepalived-1.2.2 ()
安装过程:
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 { #邮件通知
linuxidc@
}
notification_email_from nginx@
smtp_server 127.0.0.1
smtp_connect_timemout 30
router_id nginx. #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