设为首页 收藏本站
查看: 682|回复: 0

[经验分享] Nginx HA (主从模式)

[复制链接]

尚未签到

发表于 2018-11-8 11:48:06 | 显示全部楼层 |阅读模式
要想生活过的好,就要学习学到老。。。

最近学习了Nginx HA,跟大家分享下。

言归正传,先上原理图


DSC0000.png

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

DSC0001.jpg

DSC0002.jpg



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-632383-1-1.html 上篇帖子: Nginx+PHP7 安装及配置 下篇帖子: linux nginx 配置以及排错
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表