【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

相关推荐
聆风吟º4 小时前
CANN开源项目深度实践:基于amct-toolkit实现自动化模型量化与精度保障策略
运维·开源·自动化·cann
较劲男子汉8 小时前
CANN Runtime零拷贝传输技术源码实战 彻底打通Host与Device的数据传输壁垒
运维·服务器·数据库·cann
风流倜傥唐伯虎8 小时前
Spring Boot Jar包生产级启停脚本
java·运维·spring boot
Doro再努力8 小时前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
senijusene8 小时前
Linux软件编程:IO编程,标准IO(1)
linux·运维·服务器
不像程序员的程序媛8 小时前
Nginx日志切分
服务器·前端·nginx
忧郁的橙子.8 小时前
02-本地部署Ollama、Python
linux·运维·服务器
醇氧8 小时前
【linux】查看发行版信息
linux·运维·服务器
No8g攻城狮9 小时前
【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤
linux·运维·ubuntu
酷酷的崽7989 小时前
CANN 生态可维护性与可观测性:构建生产级边缘 AI 系统的运维体系
运维·人工智能