【Nginx 开发】Nginx高可用集群

配置集群

高可用集群

为什么需要配置Nginx集群:

在实际开发过程中Nginx也有可能宕机,如果我们能够将Nginx配置成高可用,当Nginx宕机之后,在集群中我们可以将请求转发到从Nginx服务器当中,由该从服务器完成任务

那我们怎么实现主从之间的切换,要想到两台Nginx服务器的地址也是不同的

这时我们可以使用虚拟ip来完成,我们对外界提供虚拟ip,绑定集群中的Nginx地址,这时通过keeplived(相当于一种路由,检测主从服务器的工作状态),来完成主从服务器之间的切换

配置高可用集群

条件:

  1. 需要多台服务器安装Nginx

安装Nginx步骤请参考博主的Nginx开发第一篇

  1. 需要keepalived,并在配置文件中给出虚拟ip

yum -y install keepalived :执行命令安装(在/usr目录中安装)

安装之后,在etc目录中生成目录keepalived,其中存在文件keepalived.conf

keepalived.conf文件中配置Nginx服务器的主从

txt 复制代码
#全局的配置
global_defs {
notification_email{
      acassen@firewall.loc
      failover@firewall.loc
      sysadmin@firewall.loc
      } 
      notifcation_email_from Alexandre.Cassen@firewall.1oc
      smtp_server 192.168.75.129
      smtp_connect_timeout 30
      # Linux主机的名字,也是通过hosts文件配置映射而来
      router_id LVS_DEVEL
      }
 #脚本的一些相关配置
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"
# 当脚本中返回正确执行下边操作
interval 2 #(检测脚本执行的间隔)
weight 2 #改变当前服务器的权重
}
# 虚拟ip的相关配置
vrrp_instance VI_1{
     state BACKUP #备份服务器上将MASTER改为BACKUP
     interface ens33  #网卡
     virtual_router_id 51 #主,备机的virtual_router_id必须相同
     priority 100 #主备机取不同的优先级,主机值较大,一般主机100,备用90
     advert_int 1 #心跳检测,每隔1秒检查当前服务器存活状态
     # 校验方式
     authentication {
          auth_type PASS
          auth_pass 1111
     }
     # 虚拟IP的地址
     virtual_ipaddress{
          192.168.75.10 # VRRP H虚拟地址
     }
     }

检测的脚本

txt 复制代码
 #!/bin/bash
 A='ps -C nginx -no-header |wc -1'
 if [$A -eq 0];then
    /usr/local/nginx/sbin/nginx
    sleep 2
    if ['ps -C nginx --no-header |wc -1' -eq 0];then 
        killall keepalived
       fi
 fi
  1. 启动多台服务器的Nginx以及keepalived

systemctl start keepalived.server

相关推荐
Full Stack Developme1 小时前
JVM 与 Linux 交互的核心原理
linux·运维·jvm
Java识堂1 小时前
多级负载均衡架构
运维·架构·负载均衡
MXsoft6181 小时前
## 自动化巡检:从手工两小时到系统五分钟的落地实践
运维·自动化
ZLG_zhiyuan1 小时前
直击华南工博会|ZLG致远电子:EtherCAT与自动化总线应用方案动态实景呈现
运维·自动化
HackTwoHub1 小时前
最新Nessus2026.6.8版本主机漏洞扫描/探测工具Windows/Linux
linux·运维·服务器·安全·web安全·网络安全·安全架构
Nayxxu2 小时前
Gemini + RAG 企业知识库教程:从文档切片到答案生成
运维·人工智能
三雷科技3 小时前
Claude Code 命令行完全指南:从高效交互到自动化工作流
运维·自动化·交互
正经教主4 小时前
【docker基础】第五课:Docker网络详解
运维·docker·容器
小黑蛋学java5 小时前
Nginx 接口耗时 Prometheus + Grafana 监控实施方案
运维·nginx·负载均衡·grafana·prometheus
IVEN_6 小时前
记一次诡异的前端白屏故障:Nginx Proxy Cache 内存缓存"幽灵"事件
前端·nginx