Nginx结合keepalived实现集群

 更新时间:2024年05月10日 10:00:43   作者:ChinaDragonDreamer  
本文主要介绍了Nginx结合keepalived实现集群,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Nginx与keepalived实现集群实现的效果

两台服务器都安装Nginx与keepalived:
master服务器的ip(192.168.200.2)
backup服务器的ip(192.168.200.4)
将 master服务器Nginx与keepalived都停掉,在 backup服务器里的浏览器输入http://192.168.188.100,访问Nginx首页
备注:192.168.188.100是keepalived的虚拟ip

第一步:准备两台服务器,示例如下图所示

在这里插入图片描述

第二步:给两台服务器安装Nginx

在终端里输入: su root 切换到root用户角色方便后面输入指令执行操作,如果提示输入密码错误,退出,在终端里输入 sudo passwd 按回车键 输入密码,成功后再输入 su root 切换到root角色;

安装nginx.:终端里输入apt-get install nginx, 如果没有切换到root , 输入sudo apt-get install nginx

启动Nginx:终端里输入service nginx start

在浏览器里输入服务器的ip地址验证Nginx启动成功
master服务器

在这里插入图片描述

backup服务器

在这里插入图片描述

第三步:给两台服务器安装keepalived

在终端里输入:apt-get install keepalived,如果没有切换到root , 输入sudo apt-get install keepalived

keepalived安装完之后切换到etc目录,在终端里输入:cd /etc,接着输入:ls,如下图所示,

在这里插入图片描述

切换到keepalived目录:cd keepalived, ls查看keepalived里的文件,如果里面没有keepalived.conf和check_nginx.sh文件,分别输入touch keepalived.conf,touch check_nginx.sh 即创建两个对应的文件。

在这里插入图片描述

编辑keepalived.conf:终端里输入:vi keepalived.conf
提醒:如果没有vi指令,需要先安装vim, 在终端里输入apt-get install vim

在这里插入图片描述

查看master服务器的网卡名称:输入ifconfig

在这里插入图片描述

master服务器的keepalived.conf 内容如下

global_defs {
   router_id LVS_MASTER  #名称标记为master,名字随便取
   vrrp_gna_interval 0
}

#加入周期性检测nginx服务脚本的相关配置
vrrp_script check_nginx{
    script "/etc/keepalived/check_nginx.sh" #心跳执行的脚本,检测nginx是否启动
    interval 2                           #(检测脚本执行的间隔,单位是秒)
}

vrrp_instance VI_1 {
    state MASTER #指定当前节点为master节点,只能有一个master,其余只能是backup
    interface ens33 #绑定此虚拟路由使用的网卡的名称,使用ifconfig或者ip addr查看
    virtual_router_id 99 #指定虚拟路由id,虚拟路由的唯一标识,范围是0-255,mater和backup节点需要指定一样的,相同id为一组
    priority 200 #指定当前结点的优先级,master节点要大于backup节点。
    advert_int 1 #指定发送VRRP通告的间隔,单位是秒
    virtual_ipaddress {
        192.168.188.100 #指定虚拟ip,自定义的虚拟ip
    }
	
	#添加跟踪(执行脚本)
    track_script{
        check_nginx
    }
}

编辑完keepalived.conf 内容,在终端里按住键盘shift+:(冒号)键,然后输入wq,即退出并保存

backup服务器的网卡名称

在这里插入图片描述

backup服务器的keepalived.conf 内容如下

global_defs {
   router_id LVS_BACKUP  #名称标记为BACKUP,只要不是MASTER,名字随便取
   vrrp_gna_interval 0
}

#加入周期性检测nginx服务脚本的相关配置
vrrp_script check_nginx{
    script "/etc/keepalived/check_nginx.sh" #心跳执行的脚本,检测nginx是否启动
    interval 2                           #(检测脚本执行的间隔,单位是秒)
}

vrrp_instance VI_1 {
    state BACKUP #指定当前节点为master节点,只能有一个master,其余只能是backup
    interface ens33 #绑定此虚拟路由使用的网卡的名称,使用ifconfig或者ip addr查看
    virtual_router_id 99 #指定虚拟路由id,虚拟路由的唯一标识,范围是0-255,mater和backup节点需要指定一样的,相同id为一组
    priority 199 #指定当前结点的优先级,master节点要大于backup节点。
    advert_int 1 #指定发送VRRP通告的间隔,单位是秒
    virtual_ipaddress {
        192.168.188.100 #指定虚拟ip,自定义的虚拟ip, 注意一定是和master的服务器里虚拟ip一样的
    }
	
	#添加跟踪(执行脚本)
    track_script{
        check_nginx
    }
}

两台服务器编辑check_nginx.sh:终端里输入:vi check_nginx.sh

在这里插入图片描述

check_nginx.sh内容

#!/bin/bash
#检测nginx是否启动了
A=`ps -C nginx --no-header |wc -l`        
if [ $A -eq 0 ];then    #如果nginx没有启动就启动nginx                        
      /root/ydy/nginx/sbin/nginx                #重启nginx,也可以使直接监听应用服务
      if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then    #nginx重启失败,则停掉keepalived服务,进行VIP转移
              killall keepalived                    
      fi
fi

第四步:启动两台服务器的keepalived

在master服务器终端里输入service keepalived start
查看绑定的网卡

在这里插入图片描述

验证keepalived虚拟ip调用,在master服务器的浏览器输入http://192.168.188.100

在这里插入图片描述

第五步:关闭master服务器的Nginx和keepalived,在 backup服务器里的浏览器输入http://192.168.188.100,访问Nginx首页

在master服务器终端里输入service keepalived stop

在master服务器终端里输入service nginx stop

在 backup服务器里的浏览器输入http://192.168.188.100

在这里插入图片描述

以上就是Nginx与keepalived实现集群的全部内容讲解,更多相关Nginx keepalived集群内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Nginx 13: Permission denied 解决方案

    详解Nginx 13: Permission denied 解决方案

    这篇文章主要介绍了详解Nginx 13: Permission denied 解决方案,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 详解如何通过nginx进行服务的负载均衡

    详解如何通过nginx进行服务的负载均衡

    负载均衡器可以将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理,本文主要为大家详细介绍了如何通过nginx进行服务的负载均衡,需要的可以参考下
    2023-11-11
  • nginx proxy_pass转发规则解读

    nginx proxy_pass转发规则解读

    这篇文章主要介绍了nginx proxy_pass转发规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Nginx反代Ollama接口跨域无法逐字输出问题详解

    Nginx反代Ollama接口跨域无法逐字输出问题详解

    这篇文章主要介绍了在本地部署DeepSeek模型,并通过Ollama管理,内网穿透到公网,再使用Nginx反向代理Ollama接口时遇到的跨域问题,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • Nginx反向代理后端服务的操作步骤

    Nginx反向代理后端服务的操作步骤

    反向代理是一种代理服务器,位于客户端与服务器之间,后端服务器处理请求后将响应发送回反向代理服务器,反向代理服务器再将响应返回给客户端,本文将详细介绍Nginx如何反向代理后端服务,涵盖其基本概念、配置方法、负载均衡、SSL/TLS支持等多个方面,需要的朋友可以参考下
    2024-06-06
  • 详解Nginx 502错误解决办法

    详解Nginx 502错误解决办法

    这篇文章主要介绍了详解Nginx 502错误解决办法的相关资料,这里说明几种可能出现的502错误的实例,并一一说明如何解决,需要的朋友可以参考下
    2017-08-08
  • nginx支持tcp转发的配置分享

    nginx支持tcp转发的配置分享

    本文给大家讲解的是使用nginx实现TCP转发的配置方法,非常的简单实用,并附上了所需模块的下载地址,有需要的小伙伴可以参考下
    2017-10-10
  • Nginx 如何部署指定文件夹下的项目(本地测试)

    Nginx 如何部署指定文件夹下的项目(本地测试)

    这篇文章主要介绍了Nginx 如何部署指定文件夹下的项目(本地测试),分为配置vue.config.js,指定生成环境的包,配置路由模式为hash(history模式刷新后,找不到页面),本文讲解的非常详细,需要的朋友可以参考下
    2024-01-01
  • 阿里云部署Ubuntu 1.4 Flask + WSGI + Nginx 详解

    阿里云部署Ubuntu 1.4 Flask + WSGI + Nginx 详解

    本文解决的是 Flask 最后一公里的问题:Linux 部署,需要的朋友可以参考下
    2017-12-12
  • nginx配置请求转发不生效的实现

    nginx配置请求转发不生效的实现

    本文主要介绍了nginx配置请求转发不生效的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02

最新评论