【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

相关推荐
Decay__2 小时前
SQL Server 数据库全栈运维实战系列 — 合集索引(24 篇)
运维·数据库·sql·mysql·架构
Decay__10 小时前
12_MySQL InnoDB 内存与锁调优 —— Buffer Pool、redo log、隔离级别与锁等待
运维·数据库·sql·mysql·架构
java_logo12 小时前
Docker 部署 Dify:轻松搭建 LLM 应用开发平台
运维·docker·容器
方便面不加香菜13 小时前
Docker Container -- 综合实战案例详解
运维·docker·容器
海洋之恒14 小时前
GitHub Actions 自动化:5 个真实运维提效案例
运维·自动化·github
迪康coolmu16 小时前
出差终端数据安全落地实战:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·经验分享·笔记·其他·安全·php
qq_3718021118 小时前
Ubuntu Linux中安装WorkBuddy
linux·运维·服务器·ubuntu
逃逸线LOF19 小时前
服务网关Gateway
java·运维·gateway
分布式存储与RustFS20 小时前
OpenSearch 的索引快照别只留本地:用 repository-s3 存进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准