Nginx搭建高可用的实现

1、高可用概念

一台nginx宕机了,还可以切换到另一台nginx上继续工作,让用户继续访问后台服务器

Nginx搭建高可用的实现

2、准备工作

  • (1)需要两台 nginx 服务器
  • (2)需要 keepalived
  • (3)需要虚拟 ip

Nginx搭建高可用的实现

 3、高可用准备工作

(1)需要两台服务器 192.168.17.129 和 192.168.17.131

(2)在两台服务器安装 nginx

​ 这里如果不想再去安装一遍 Nginx ,可以直接克隆 CentOs 。

(3)在两台服务器安装 keepalived

使用命令安装:yum install keepalived –y

安装之后,在 /etc 里面生成目录 keepalived,有文件 keepalived.conf

Nginx搭建高可用的实现

4、完成高可用配置(主从配置) 

(1)主机 Nginx 修改/etc/keepalived/keepalivec.conf 配置文件

! Configuration File for keepalived

global_defs {

    notification_email {

        acassen@firewall.loc

        failover@firewall.loc

        sysadmin@firewall.loc
     }

        notification_email_from Alexandre.Cassen@firewall.loc

        smtp_server 192.168.17.129

        smtp_connect_timeout 30

        router_id LVS_DEVEL # 主机名字
}


vrrp_script chk_http_port {
        script "/usr/local/src/nginx_check.sh"
        interval 2 #(检测脚本执行的间隔)
        weight 2 # 权重
   }
        vrrp_instance VI_1 {
        state MASTER # 备份服务器上将 MASTER 改为 BACKUP
        interface ens33 # 网卡
        virtual_router_id 51  # 主、备机的 virtual_router_id 必须相同
        priority 100  # 主、备机取不同的优先级,主机值较大,备份机值较小
        advert_int 1
        authentication {
                auth_type PASS
                auth_pass 1111
        }

        virtual_ipaddress {
             192.168.77.50 # VRRP H 虚拟地址
        }

}

(2)主机 /usr/local/src添加检测脚本:nginx_check.sh

#!/bin/bash
A=`ps -C nginx –no-header | wc -l`
if [ $A -eq 0 ];then
        /usr/local/nginx/sbin/nginx
        sleep 2
        if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
            killall keepalived
        fi
fi

(3) 从机 Nginx修改/etc/keepalived/keepalivec.conf 配置文件

! Configuration File for keepalived

global_defs {

    notification_email {

        acassen@firewall.loc

        failover@firewall.loc

        sysadmin@firewall.loc 

     }

        notification_email_from Alexandre.Cassen@firewall.loc

        smtp_server 192.168.17.129

        smtp_connect_timeout 30

        router_id LVS_DEVEL 
}


vrrp_script chk_http_port {
        script "/usr/local/src/nginx_check.sh"
        interval 2
        weight 2
   }
        vrrp_instance VI_1 {
        state BACKUP # 修改为从机 BACKUP
        interface ens33 # 修改为从机 ip
        virtual_router_id 51
        priority 90 # 优先级比主机低
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }

        virtual_ipaddress {
            192.168.77.50
        }

}

 (4)从机 /usr/local/src添加检测脚本:nginx_check.sh

#!/bin/bash
A=`ps -C nginx –no-header | wc -l`
if [ $A -eq 0 ];then
        /usr/local/nginx/sbin/nginx
        sleep 2
        if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
            killall keepalived
        fi
fi

(5)、启动 Nginx

分别启动主从 Nginx ,切换到/usr/local/nginx/sbin/,执行./nginx

(6)、主从都启动 keepalived

CentoS6启动命令

service keepalived start

Centos7启动命令

systemctl start keepalived.service

(7)、主从都测试 keepalived 是否启动成功 

ps -ef | grep keepalived

Nginx搭建高可用的实现

5、最终测试 

此时便可以通过虚拟 ip 地址访问到 Nginx 。

Nginx搭建高可用的实现

 6、将从机nginx和keepalived停掉,继续访问虚拟ip,依旧可以方位到nginx,高可用至此完成。

Nginx搭建高可用的实现

到此这篇关于Nginx搭建高可用的实现的文章就介绍到这了,更多相关Nginx搭建高可用内容请搜索恩蓝小号以前的文章或继续浏览下面的相关文章希望大家以后多多支持恩蓝小号!

原创文章,作者:MZFKL,如若转载,请注明出处:http://www.wangzhanshi.com/n/1198.html

(0)
MZFKL的头像MZFKL
上一篇 2024年12月17日 18:00:21
下一篇 2024年12月17日 18:00:23

相关推荐

  • Nginx中的root和alias指令示例详解

    Nginx是一种强大的Web服务器和反向代理服务器,广泛用于提供静态文件服务、负载均衡以及作为HTTP缓存。在配置Nginx时,root和alias是两个重要但经常令人混淆的指令,…

    nginx 2024年12月17日
  • nginx代理webSocket链接,webSocket频繁断开重连方式

    一、场景 1、使用nginx代理webSocket链接,消息发送和接收都是正常的,但webSocket链接会频繁断开重连 2、如果不使用nginx代理则一切正常 3、程序没有做we…

    2024年12月17日
  • Nginx 流量镜像使用的方法示例

    Nginx 流量镜像是一种在不干扰原始请求正常处理的前提下,复制一份请求的相关数据(如请求头、请求体等),并将其发送到另一个目的地的技术。这种技术在数据分析、安全监控、测试和开发等…

    nginx 2024年12月17日
  • nginx代理的缓存配置

    naginx的代理缓存 ngx_http_proxy_module nginx的代理缓存需要这个模块 下面的内容接着上个反向代理和负载均衡的文章,可以去阅读我的上一篇ng…

    2024年12月17日
  • 一文读懂Ingress-Nginx的实践

    ❤️ 摘要: Ingress-Nginx 是 Kubernetes 中用于管理 HTTP 和 HTTPS 流量的强大工具。通过配置 Ingress 资源,用户可以灵活地路由流量到后…

    2024年12月17日
  • Nginx下载、安装与使用图文教程

    Nginx下载 简介:Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务(邮件服务)。 官网下载地址: https://nginx…

    2024年12月17日
  • 使用Nginx部署前端Vue项目的实现

    在这篇文章中,我们将深入探讨如何使用 Nginx 部署一个 Vue.js 前端项目。Vue 是一个流行的前端 JavaScript 框架,而 Nginx 则是一个性能卓越的 Web…

    nginx 2024年12月17日
  • linux设置Nginx自动重启的实现

    在生产环境中,确保Nginx在服务器重启后自动启动是非常重要的。本文将详细介绍如何在Linux系统中设置Nginx服务开机自动重启的方法,确保Nginx能够在系统启动后自动恢复运行…

    nginx 2024年12月17日
  • Mac使用Nginx设置代理并禁用自带Apache的问题记录

    Mac自带Apache服务,并占用80端口,如果需要使用Nginx,需要禁用Apache并自己安装Nginx 一、禁用自带Apache 1.关闭Apache sudo apache…

    nginx 2024年12月17日
  • Nginx中配置HTTP2协议的方法

    在当今互联网的高速发展时代,网站的性能和用户体验变得至关重要。就好比在一场激烈的赛车比赛中,车辆的性能和配置决定了谁能率先冲过终点线。而在网站的世界里,HTTP2 协议就像是给网站…

    nginx 2024年12月17日

发表回复

登录后才能评论