Nginx HA (主从模式)

简介:

要想生活过的好,就要学习学到老。。。

 最近学习了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可以正常提供服务,模拟宕机,另外一台接管。 

 










本文转自 linuxsong 51CTO博客,原文链接:http://blog.51cto.com/song49/901459,如需转载请自行联系原作者
目录
相关文章
|
前端开发 JavaScript 应用服务中间件
VUE3(十八)vue 路由history 模式去掉 URL 中的 # (nginx)
这部分内容比较少。其实更多的是参考一下vue-router4的官方文档就好。 但是,去掉#之后的路由在配合php框架使用的时候可能会有问题,就是这个链接不知道该去后端还是去前端的路由。
981 0
VUE3(十八)vue 路由history 模式去掉 URL 中的 # (nginx)
|
4月前
|
负载均衡 前端开发 应用服务中间件
NGINX高可用之keepalived+nginx主从模式+主主模式配置实践
NGINX高可用之keepalived+nginx主从模式+主主模式配置实践
117 1
|
7月前
|
弹性计算 监控 应用服务中间件
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
243 0
|
7月前
|
负载均衡 应用服务中间件 nginx
nginx这种负载均衡模式,你用过吗
nginx这种负载均衡模式,你用过吗
74 0
|
9月前
|
监控 安全 Linux
虚拟机CentOS的Nginx+keepalived 高可用集群配置主从模式
虚拟机CentOS的Nginx+keepalived 高可用集群配置主从模式
128 0
|
9月前
|
设计模式 监控 负载均衡
从Reactor模式俯瞰Nginx,你会发现你与高手的差距就在设计模式上,不在内卷上
从Reactor模式俯瞰Nginx,你会发现你与高手的差距就在设计模式上,不在内卷上
|
Unix 应用服务中间件 PHP
nginx默认是哪种模式运行PHP?底层原理是什么?
nginx默认是哪种模式运行PHP?底层原理是什么?
116 0
|
缓存 安全 搜索推荐
Nginx配置4种模式跳转到指定统一域名
Nginx配置4种模式跳转到指定统一域名
1086 0
|
Web App开发 弹性计算 移动开发
日志服务之使用Nginx模式采集日志-4
日志服务之使用Nginx模式采集日志-4
126 0
|
Web App开发 存储 弹性计算
半天掌握日志存储 云启实验室系列课程 第一讲 | 日志服务之使用 Nginx 模式采集日志
半天掌握日志存储 云启实验室系列课程 第一讲 |日志服务之使用 Nginx 模式采集日志。 本文介绍如何通过日志服务控制台创建 Nginx 模式的Logtail 配置快速采集 Nginx 日志并进行多维度分析。专家支持:阿里云日志服务技术专家 沐自
260 0
半天掌握日志存储 云启实验室系列课程 第一讲 | 日志服务之使用 Nginx 模式采集日志