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防止IP地址被恶意解析详解

    如何利用Nginx防止IP地址被恶意解析详解

    这篇文章主要给大家介绍了关于如何利用Nginx防止IP地址被恶意解析的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-06-06
  • Windows环境实现Nginx配置及开机自启动

    Windows环境实现Nginx配置及开机自启动

    本文主要介绍了Windows环境实现Nginx配置及开机自启动,通过两种方式可以实现nginx的开机自启动,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • keepalived + nginx 实现高可用方案

    keepalived + nginx 实现高可用方案

    这篇文章主要介绍了keepalived + nginx 实现高可用方案的相关资料,需要的朋友可以参考下
    2022-12-12
  • Nginx处理跨域问题小结

    Nginx处理跨域问题小结

    这篇文章主要介绍了Nginx处理跨域问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-01-01
  • 解决nginx已经配置过跨域不生效问题

    解决nginx已经配置过跨域不生效问题

    这篇文章主要介绍了解决nginx已经配置过跨域不生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 解决nginx代理 url重写的问题

    解决nginx代理 url重写的问题

    这篇文章主要介绍了解决nginx代理 url重写的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • Nginx配置location匹配顺序详细总结

    Nginx配置location匹配顺序详细总结

    这篇文章主要介绍了Nginx配置location匹配顺序详解,Nginx是十分轻量级的HTTP服务器,Nginx凭借其稳定性、低资源消耗、简单配置和丰富的功能,从十多年前名不见经传的Web服务器软件,发展到如今能够跟Apache匹敌的地位,需要的朋友可以参考下
    2023-08-08
  • Tomcat请求处理在源码中的轮转解析

    Tomcat请求处理在源码中的轮转解析

    这篇文章主要为大家介绍了Tomcat请求处理在源码中的轮转解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • nginx http响应限速的具体实现

    nginx http响应限速的具体实现

    本文主要介绍了nginx http响应限速的具体实现,可以使用limite_rate和limit_rate_after来限制HTTP响应的速度,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • 关于nginx 反向代理 URL替换方案

    关于nginx 反向代理 URL替换方案

    这篇文章主要介绍了nginx 反向代理 URL替换方案,本文给大家代理两种方法一种是直接替换location匹配部分,第二种是使用nginx 的rewrite 模块,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-03-03

最新评论