【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

相关推荐
s_fox_15 分钟前
Nginx Embedded Variables 嵌入式变量解析(4)
java·网络·nginx
网络安全(华哥)1 小时前
网络安全服务实施流程管理 网络安全服务体系
运维·服务器·网络
致奋斗的我们1 小时前
Nginx反向代理及负载均衡
linux·运维·mysql·nginx·负载均衡·shell·openeluer
Ares-Wang2 小时前
负载均衡 方式
运维·负载均衡
钗头风2 小时前
3.Docker常用命令
运维·docker·容器
朝九晚五ฺ2 小时前
【Linux探索学习】第三十弹——线程互斥与同步(上):深入理解线程保证安全的机制
linux·运维·学习
不要吃栗子李2 小时前
高级运维:1. 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。2. 基于 openEuler 构建 LVS-DR 群集。
运维·负载均衡·lvs
ITPUB-微风3 小时前
网易严选DevOps实践:从传统到云原生的演进
运维·云原生·devops
圣心4 小时前
Ollama Docker 镜像部署
运维·docker·容器
Karoku0665 小时前
【CI/CD】Jenkinsfile管理+参数化构建+邮件通知以及Jenkins + SonarQube 代码审查
运维·ci/cd·容器·kubernetes·jenkins·rancher