首页 > 系统相关 >Keepalived+Nginx 高可用集群架构

Keepalived+Nginx 高可用集群架构

时间:2023-06-25 14:13:59浏览次数:39  
标签:架构 nginx -- Keepalived etc keepalived Nginx systemctl 80

                                                           Keepalived+Nginx 高可用集群(主从模式)

                                                                                                      

一、两台群集服务器都需要安装nginx和keepalived,先添加nginx yum 源

vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
yum clean all
yum makecache
yum install -y nginx

二、防火墙设置

systemctl status firewalld     //查看防火墙状态
systemctl start/stop firewalld  //防火墙启停
firewall-cmd --list-ports    //查看开放的端口
firewall-cmd --zone=public --query-port=80/tcp    //查询80端口是否开放
firewall-cmd --zone=public --add-port=80/tcp --permanent     //开放80端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent    //移除80端口
firewall-cmd --reload    //重新加载
如果开放了执行上放开80端口还不行,那就再执行iptables -F
setenforce 0
vim /etc/selinux/config   将seLIUNX永久关闭
getenforce   #查看seliunx状态如果出现disabled或者permissive示示已关闭

 三、配置Nginx站配置文件

vim /etc/nginx/conf.d/default.conf  #将默认配置的监听端口改成8080
cd /etc/nginx/conf.d/
vim it.conf
server {
        listen       80;                        #指定监听端口80
        server_name  it.founderpcb.com;          #指定当前网的访问的域名
        location / {                              #指定代码位置
          proxy_pass https://pcbsrvdhcp114.founderpcb.com;  #指定首页文件 
        }
    }
systemctl start nginx       启动nginx
systemctl stop nginx         停止nginx
systemctl  restart nginx   重启nginx
nginx -s reload   重新加nginx配置
nginx -V 查看版本

四、两台服务器都要安装Keepalived

安装主服务器

yum install -y keepalived
vim  /etc/keepalived/keepalived.conf
! Configuration File for keepalived
vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh" #运行脚本,脚本内容下面有,就是起到一个nginx宕机以后,自动开启服务
    interval 2 #检测时间间隔
    weight -20 #如果条件成立的话,则权重 -20
}
# 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
    state MASTER #来决定主从
    interface ens192 # 绑定虚拟 IP 的网络接口,根据自己的机器填写
    virtual_router_id 121 # 虚拟路由的 ID 号, 两个节点设置必须一样
    mcast_src_ip 172.21.57.17 #填写本机ip
    priority 100 # 节点优先级,主要比从节点优先级高
    nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
    advert_int 1 # 组播信息发送间隔,两个节点设置必须一样,默认 1s
    authentication {
        auth_type PASS
        auth_pass 1111
    }     
    # 将track_script块加入instance 配置块
    track_script {
        chk_nginx #执行Nginx监控的服务
    }   
 
    virtual_ipaddress { 
        172.21.57.15 #虚拟ip
    }
}  

安装副服务器

yum install -y keepalived
vim  /etc/keepalived/keepalived.conf
! Configuration File for keepalived
vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh" #运行脚本,脚本内容下面有,就是起到一个nginx宕机以后,自动开启服务
    interval 2 #检测时间间隔
    weight -20 #如果条件成立的话,则权重 -20
}
# 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
    state BACKUP #来决定主从
    interface  ens192 # 绑定虚拟 IP 的网络接口,根据自己的机器填写
    virtual_router_id 121 # 虚拟路由的 ID 号, 两个节点设置必须一样
    mcast_src_ip 172.21.57.18 #填写本机ip
    priority 100 # 节点优先级,主要比从节点优先级高
    nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
    advert_int 1 # 组播信息发送间隔,两个节点设置必须一样,默认 1s
    authentication {
        auth_type PASS
        auth_pass 1111
    }    
    # 将 track_script 块加入 instance 配置块
    track_script {
        chk_nginx #执行 Nginx 监控的服务
    } 
             
    virtual_ipaddress {
        172.21.57.15 # 虚拟ip
    }
}   

五、Nginx+keepalived实现高可用脚本:

vim /etc/keepalived/nginx_check.sh      #编辑脚本文件当检测nginx服务停止后立即关闭keepalived

#!/bin/bash A=`ps -C nginx --no-header |wc -l` if [ $A -eq 0 ];then systemctl kill keepalived fi
chmod 777 /etc/keepalived/nginx_check.sh     #授权脚本
systemctl start keepalived     #启动keepalived服务
systemctl restart keepalived   #重启keepalived服务
systemctl stop keepalived      #停止keepalived服务

 六、验证高可用是否生效

systemctl stop nginx         #将主服务器的nginx服务停止掉
systemctl status keepalived   #查询keepalived服务状态也已经停止掉了

 群集IP地址已经正常漂移到另一台备份服务器上去了

 

  

 

 

  

 

标签:架构,nginx,--,Keepalived,etc,keepalived,Nginx,systemctl,80
From: https://www.cnblogs.com/fzhelpdesk/p/17502776.html

相关文章

  • 【Nginx】- 优化实践
    Nginx的优化Linux安装Nginx安装依赖包//一键安装下面四个依赖gcc/zlib/prec-devel/opensslyum-yinstallgcczlibzlib-develpcre-developensslopenssl-devel因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来yuminstallgcc-c++Nginx......
  • Nginx的stub_status
    Nginx的stub_status模块是一个官方提供的一个用于实时监控Nginx服务器状态信息的模块。它通过HTTP接口提供了一个简单的页面,展示了当前Nginx服务器的关键性能指标和连接状态。启用stub_status模块后,可以通过访问特定的URL来获取Nginx的状态信息。默认情况下,该URL为http://y......
  • 如何在nginx增加健康检查接口?
    在docker中部署的nginx或者在nginx部署的nginx一般是需要一个健康检查接口的 这样的话,就可以确定容器当前的状态是否是健康的 那么,如何给nginx增加一个健康检查的接口呢? 接下来呢,我们就演示一个在nginx中如何增加健康检查的接口 1、打开nginx的配置文件(nginx.conf) ......
  • 分布式架构通信方式
    分布式通信方式  分布式通信是指在分布式系统中,不同节点之间进行消息传递和交互的方式。  以下是常见的分布式通信方式:消息队列(MessageQueue):使用消息队列作为中间件,节点之间通过发送和接收消息来实现通信。消息队列提供了异步、解耦和可靠性的通信机制,常见的消息队列系统......
  • k8s 创建nginx
    1、在kubenetes集群中创建一个pod创建nginx,拉取镜像kubectlcreatedeploymentnginx--image=nginx2、查看镜像是否下载成功kubectlgetpodstatus为running表示拉取完成 3、暴露Nginx端口kubectlexposedeploymentnginx--port=80--type=NodePort4、查看Nginx端口......
  • 网易交互设计师微专业C3 规范信息架构与流程设计
    如果有需要视频资源的可以关注"AI产品经理人",回复关键字“网易交互设计微专业”获取下载链接~  Chapter3规范信息架构与流程设计第一章 信息架构设计(一)认知产品信息架构定义:信息架构设计是对信息进行结构、组织方式以及归类的设计,好让使用者与用户容易使用和理解的一项艺术与......
  • 系统架构设计师笔记第22期:软件可靠性建模
    软件可靠性建模是指通过分析软件系统的特征和行为,预测其可能出现的故障和失效情况,从而评估软件系统的可靠性和安全性。软件可靠性建模通常使用统计方法和数学模型,以定量分析软件系统的可靠性和安全性。以下是一些常见的软件可靠性建模方法:故障树分析(FTA):FTA是一种演绎推理方法,通过识......
  • ubuntu安装nginx建立静态站
    版本:服务器ubuntu20.04本地windows10远程工具xshell71、nginx官网 http://nginx.org/en/docs/2、点击installingnginx3、点击 InstallationonLinux下的packages4、点击Ubuntu5、开始傻瓜式操作,一定!一定!一定!使用root安装和使用nginx哦!我以下所有执行都是roo......
  • 3分钟了解MacBook m1芯片使用docker安装nginx
    1、先安装nginxdockerpullnginx2、创建目录mkdir-p/Users/benjie/software/nginx/confmkdir-p/Users/benjie/software/nginx/logsmkdir-p/Users/benjie/software/nginx/html3、启动nginx实例,为了复制配置dockerrun--namenginx-p80:80-dnginx:latest4、......
  • nginx 多个配置文件
    1、2、nginx.confworker_processes1;events{worker_connections1024;}http{includemime.types;default_typeapplication/octet-stream;sendfileon;gzipon;keepalive_timeout5000;include/eeeee/nginx-1.23......