Nginx的HA高可用的搭建的实现

 更新时间:2024年08月08日 11:47:19   作者:Liij  
高可用是一种系统设计策略,旨在确保服务或应用在面对硬件故障、软件缺陷或任何其他异常情况时,仍能持续稳定地运行,本文主要介绍了Nginx的HA高可用的搭建,感兴趣的可以了解一下

1. 什么是高可用

高可用(High Availability, HA)是一种系统设计策略,旨在确保服务或应用在面对硬件故障、软件缺陷或任何其他异常情况时,仍能持续稳定地运行。它通过实现冗余性、故障转移、负载均衡、数据一致性、监控自动化、预防性维护、灾难恢复计划以及服务级别协议等关键要素,来减少服务中断时间,提升服务的可靠性和稳定性。

2. 高可用的原理 -- keepalived

思考

  •  Nginx如果宕机,导致客户无法访问到项目。--- 搭建Nginx高可用
  •  如果Nginx主节点宕机,如何才能切换到从节点。 -- 使用keepalived组件

3. 搭建HA高可用

我这边用来两台虚拟机

安装keepalived

yum install -y keepalived 

默认安装在/etc/keepalived下

修改keepalived.conf配置文件

global_defs {
    notification_email {
      acassen@firewall.loc
      failover@firewall.loc
      sysadmin@firewall.loc
    }
    notification_email_from Alexandre.Cassen@firewall.loc
    # ip的地址
    smtp_ server 192.168.111.188  // 改为自己的ip
    smtp_connect_timeout 30
    router_id 192.168.111.188 // 改为自己的ip
}
# 执行脚本
vrrp_script chk_http_port {
    script "/usr/local/src/nginx_check.sh"
    interval 2  # 每2s执行一次该脚本
    weight -20  # keepalive宕机  权重-20 优先级
}

vrrp_instance VI_1 {
    state MASTER # 角色
    interface ens33 # 网卡名
    virtual_router_id 51 # id 保证主从相同
    priority 100  # 优先级 主节点大于从节点
    advert_int 1
    authentication {
        auth type PASS
        auth pass 1111
        }
    virtual_ipaddress { 
        192.168.111.50 # 虚拟ip. 使用逗号隔开
    }
    track_script {
         chk_http_port # 追踪nginx脚本
    }
    
}

从节点

global_defs {
    notification_email {
      acassen@firewall.loc
      failover@firewall.loc
      sysadmin@firewall.loc
    }
    notification_email_from Alexandre.Cassen@firewall.loc
    # ip的地址
    smtp_ server 192.168.111.189
    smtp_connect_timeout 30
    router_id 192.168.111.189
}
# 执行脚本
vrrp_script chk_http_port {
    script "/usr/local/src/nginx_check.sh"
    interval 2  # 每2s执行一次该脚本
    weight -20  # keepalive宕机  权重-20 优先级
}

vrrp_instance VI_1 {
    state BACKUP # 角色
    interface ens33 # 网卡名
    virtual_router_id 51 # id 保证主从相同
    priority 90  # 优先级 主节点大于从节点
    advert_int 1
    authentication {
        auth type PASS
        auth pass 1111
        }
    virtual_ipaddress { 
        192.168.111.50 # 虚拟ip. 使用逗号隔开
    }
    track_script {
         chk_http_port # 追踪nginx脚本
    }
    
}

nginx_check.sh

#!/bin/bash
# 检查是否开启nginx---统计nginx进程的个数
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
        pkill -9 keepalived
fi

注意修改权限

修改权限: chmod 777 nginx_check.sh

启动

nginx         
keepalived    systemctl start|stop keepalived

4. 演示

现在是用第一台虚拟机进行代理

故意把第一台给宕掉,看看会不会自动切换到第二台

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

相关文章

  • Nginx之QPS限制模块的具体使用

    Nginx之QPS限制模块的具体使用

    本文主要介绍了Nginx之QPS限制模块的具体使用,主要介绍Nginx QPS限制模块的原理、安装和使用方法,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • Logrotate如何实现每小时切割日志文件

    Logrotate如何实现每小时切割日志文件

    这篇文章主要介绍了Logrotate如何实现每小时切割日志文件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • nginx 自定义 404、50x 错误页面的实现

    nginx 自定义 404、50x 错误页面的实现

    本文主要介绍了nginx 自定义 404、50x 错误页面的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12
  • Nginx设置HTTPS监听的具体步骤

    Nginx设置HTTPS监听的具体步骤

    这篇文章主要介绍了Nginx设置HTTPS监听的具体步骤,在 Nginx 上设置 HTTPS 证书,并将所有 HTTP 请求重定向到 HTTPS,文中有相关的代码示例供大家参考,需要的朋友可以参考下
    2024-12-12
  • 深入浅析nginx部署及简单优化

    深入浅析nginx部署及简单优化

    Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。本文重点给大家介绍nginx部署及简单优化方案,感兴趣的朋友一起看看吧
    2018-08-08
  • nginx搭建jsdelivr镜像站过程详解

    nginx搭建jsdelivr镜像站过程详解

    这篇文章主要为大家介绍了nginx搭建jsdelivr镜像站的步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Ansible批量部署Nginx的示例代码

    Ansible批量部署Nginx的示例代码

    这篇文章主要介绍了Ansible批量部署Nginx的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • 使用nginx缓存服务器上静态文件的设置方法

    使用nginx缓存服务器上静态文件的设置方法

    这篇文章主要介绍了使用nginx缓存服务器上的静态文件,文中给大家提到了nginx缓存的优点及设置方法,通过实例相结合的形式给大家介绍的非常详细,需要的朋友可以参考下
    2018-05-05
  • 实现自动定期删除Nginx日志的方法

    实现自动定期删除Nginx日志的方法

    这篇文章主要介绍了自动定期删除Nginx日志的方法,Nginx是一个基于事务的异步的高速服务器软件,需要的朋友可以参考下
    2015-07-07
  • 分布式限流之Nginx层限流方式

    分布式限流之Nginx层限流方式

    这篇文章主要介绍了分布式限流之Nginx层限流方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08

最新评论