nginx+keepalived集群-双主

news2025/6/3 23:43:30

在这里插入图片描述

1. nginx部署

单机部署可参考:https://blog.csdn.net/ym5209999/article/details/119897237
主备模式可参考:https://blog.csdn.net/ym5209999/article/details/132983080

2. keepalived安装

[root@nginx1 ~]# yum -y install keepalived

3. keepalived配置

3.1 安装完成后,默认配置文件位于:/etc/keepalived,默认配置如下:

keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.200.16
        192.168.200.17
        192.168.200.18
    }
}

virtual_server 192.168.200.100 443 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    real_server 192.168.201.100 443 {
        weight 1
        SSL_GET {
            url {
              path /
              digest ff20ad2481f97b1754ef3e12ecd3a9cc
            }
            url {
              path /mrtg/
              digest 9b3a0c85a887a256d6939da88aabd8cd
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

virtual_server 10.10.10.2 1358 {
    delay_loop 6
    lb_algo rr 
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    sorry_server 192.168.200.200 1358

    real_server 192.168.200.2 1358 {
        weight 1
        HTTP_GET {
            url { 
              path /testurl/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url { 
              path /testurl2/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url { 
              path /testurl3/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.200.3 1358 {
        weight 1
        HTTP_GET {
            url { 
              path /testurl/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334c
            }
            url { 
              path /testurl2/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334c
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

virtual_server 10.10.10.3 1358 {
    delay_loop 3
    lb_algo rr 
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    real_server 192.168.200.4 1358 {
        weight 1
        HTTP_GET {
            url { 
              path /testurl/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url { 
              path /testurl2/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url { 
              path /testurl3/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.200.5 1358 {
        weight 1
        HTTP_GET {
            url { 
              path /testurl/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url { 
              path /testurl2/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url { 
              path /testurl3/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

删除默认配置,以下述模板,按实际情况填写

3.2 按实际情况修改keepalived.conf

nginx1

! Configuration File for keepalived

global_defs {
   # 路由ID,当前主机标识,必须唯一
   router_id LVS_DEVEL_14
   script_user root
   enable_script_security
}

vrrp_instance VI_1 {
	# 状态,可配置内容为:MASTER/BACKUP
    state MASTER
	# 网卡名称
    interface ens32
	# 主备节点需保持一致
    virtual_router_id 51
	# 优先级,当主节点宕机后,优先级最高的成为主节点
    priority 100
	# 主备同步时间间隔 
    advert_int 1
	# 认证授权密码
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.32.12
    }
}

vrrp_instance VI_2 {
	# 状态,可配置内容为:MASTER/BACKUP
    state BACKUP
	# 网卡名称
    interface ens32
	# 主备节点需保持一致
    virtual_router_id 52
	# 优先级,当主节点宕机后,优先级最高的成为主节点
    priority 90
	# 主备同步时间间隔 
    advert_int 1
	# 认证授权密码
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.32.13
    }
}

nginx2

! Configuration File for keepalived

global_defs {
   # 路由ID,当前主机标识,必须唯一
   router_id LVS_DEVEL_15
   script_user root
   enable_script_security
}

vrrp_instance VI_1 {
	# 状态,可配置内容为:MASTER/BACKUP
    state BACKUP
	# 网卡名称
    interface ens32
	# 主备节点需保持一致
    virtual_router_id 51
	# 优先级,当主节点宕机后,优先级最高的成为主节点
    priority 90
	# 主备同步时间间隔 
    advert_int 1
	# 认证授权密码
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.32.12
    }
}

vrrp_instance VI_2 {
	# 状态,可配置内容为:MASTER/BACKUP
    state MASTER
	# 网卡名称
    interface ens32
	# 主备节点需保持一致
    virtual_router_id 52
	# 优先级,当主节点宕机后,优先级最高的成为主节点
    priority 100
	# 主备同步时间间隔 
    advert_int 1
	# 认证授权密码
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.32.13
    }
}

4. 启动验证

# 启动nginx
[root@nginx1 ~]# /apps/nginx/sbin/nginx –c /apps/nginx/conf/nginx.conf

# 启动keepalived
[root@nginx1 ~]# systemctl start keepalived

1.nginx1启动keepalived之后,nginx1服务器上显示两个IP:VIP1、nginx1服务器实体IP
在这里插入图片描述

2.nginx2启动keepalived之后,nginx2服务器上显示两个IP:VIP2、nginx2服务器实体IP在这里插入图片描述
3.nginx1停止keepalived、nginx2正常启动keepalived,nginx2服务器上显示三个IP:VIP1、VIP2、nginx2服务器实体IP
在这里插入图片描述
4.nginx2停止keepalived、nginx1正常启动keepalived,nginx1服务器上显示三个IP:VIP1、VIP2、nginx1服务器实体IP
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1592848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity DOTS1.0 入门(3) System与SystemGroup 概述

System与SystemGroup 概述 System System是提供一种代码逻辑,改变组件的数据状态,从一个状态到另外一个状态System在main thread里面运行, system.Update方法每一帧执行一次(其他线程中运行的就是JobSystem的事情了)System是通过一个System Group这个体系来决定它…

【动态规划】路径问题模型

【动态规划】路径问题模型 文章目录 【动态规划】路径问题模型前言一、不同路径二、不同路径-2三、珠宝的最高价值四、下降路径最小和五、最小路径和六、地下城游戏总结 前言 ​ 本文将从基础的不同路径问题开始,逐步深入到更复杂的最小路径和等问题,最…

webpack or vite? vuex or pinia?

2022.2.18, 新建一个vue3的项目,过程如下: 目录结构如下: 当还在犹豫选择webpack还是vite,vuex或者pinia的时候,尤大大已经给出了默认选择,vite && pinia。

Spring Boot 学习(5)——开发流程:快速入门

花了几天的时间,整出个 “hello spring boot”,并且把它从 2 搞到了 3。 纸上得来终觉浅!自己实践出真知!现在再回头来囫囵一遍,加深下印象。回想下从前自觉某一编程语言大都如此,先找到简单示例照着画一遍…

【LAMMPS学习】八、基础知识(2.7)NEMD 模拟

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

深入微服务框架:构建高效、可扩展与弹性的现代应用架构

前言:当今快速迭代和多变的商业环境中,传统的单体应用程序面临着一系列挑战,包括难以管理复杂性、缺乏灵活性以及无法有效扩展等问题。随着业务需求的不断增长和技术栈的不断演进,企业亟需一种更加模块化、易于管理和扩展的应用程…

【Godot4.2】CanvasItem绘图函数全解析 - 8.绘制点索引

概述 在示意图绘制过程中或者测试过程中,可能需要标记点的索引。 最常见的形式就是用一个圆圈作为背景,用阿拉伯数字作为索引。 实现的重点是动态计算背景圆的半径。原理是,获取字符串的矩形,取对角线长度的一半作为外接圆的半…

Servlet测试1

通过按钮提交get,post请求,并且后端响应数据,显示到前端 当点击get按钮时 是发起Get请求 后端接收到Get请求后,把数据写入到body内 当点击pst按钮时 是发起Post请求 后端接收到Post请求后,把数据写入到body内 之后前端就从bod…

【避坑/个人总结】CARLA仿真遇到问题总结1

问题描述 执行以下命令时: ./CarlaUE4.sh // 以及 ros2 launch carla_shenlan_bridge_ego_vis carla_bridge_ego_vehilce.launch.py 出现以下的问题: 解决方法: 更新numpy库到1.23的版本

Linux【实战篇】—— NFS服务搭建与配置

目录 一、介绍 1.1什么是NFS? 1.2客户端与服务端之间的NFS如何进行数据传输? 1.3RPC和NFS的启动顺序 1.4NFS服务 系统守护进程 二、安装NFS服务端 2.1安装NFS服务 2.2 创建共享目录 2.3创建共享目录首页文件 2.4关闭防火墙 2.5启动NFS服务 2.…

【蓝桥杯】2024年第15届真题题目

试题 A: 握手问题 本题总分: 5 分 【问题描述】 小蓝组织了一场算法交流会议,总共有 50 人参加了本次会议。在会议上, 大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进 行一次握手(且仅有一次&a…

【数据恢复软件】:Magnet AXIOM V8.0

Magnet AXIOM V8.0重大更新 1、全新的UI设计 2、更快的相应速度 3、补全工件分析 4、支持亚马逊AWS云数据( 获取同一帐户或安全帐户上下文中的快照。 支持Windows实例、加密卷和超过1 TB的卷、具有多个卷的实例等等! ) 5、Bug修复 6、AI支持…

【QT+QGIS跨平台编译】099:【QGIS_CORE跨平台编译】—【错误处理:qgscoordinatereferencesystem.cpp编译不通过】

点击查看专栏目录 文章目录 一、错误信息二、原因分析三、错误处理3.1 qgscoordinatereferencesystem_legacy.h3.2 qgscoordinatereferencesystem.cpp一、错误信息 macOS操作系统中,Release环境下编译qgscoordinatereferencesystem.cpp,出现错误,详细信息如下: 二

【软件设计师】计算机软考下午题试题六,Java设计模式之简单工厂模式。

【软件设计师】计算机软考下午题试题六,Java设计模式之简单工厂模式。 代码如下: //简单工厂模式 public class SimpleFactory {public static void main(String[] args) {Product ProductAFactory.createProduct("A");ProductA.info();Produc…

LeetCode 2924.找到冠军 II:脑筋急转弯——只关心入度

【LetMeFly】2924.找到冠军 II:脑筋急转弯——只关心入度 力扣题目链接:https://leetcode.cn/problems/find-champion-ii/ 一场比赛中共有 n 支队伍,按从 0 到 n - 1 编号。每支队伍也是 有向无环图(DAG) 上的一个节…

Docker Image (镜像) 常见命令

Docker Image (镜像) 常用命令 docker images 功能:列出本地所有的镜像。如果镜像 ID 相同,但是 Tag 标签不同,也会被当作不同的条目被列出来。 语法: docker images [options] [REPOSITORY[:TAG]] 别名: docker ima…

使用Pandas实现股票交易数据可视化

一、折线图:展现股价走势 1.1、简单版-股价走势图 # 简洁版import pandas as pdimport matplotlib.pyplot as plt# 读取CSV文件df pd.read_csv(../数据集/格力电器.csv)data df[[high, close]].plot()plt.show() 首先通过df[[high,close]]从df中获取最高价和收盘…

本地PC安装eNSP Pro完成简单的WLAN实验

前言 上个月底华为更新一版eNSP Pro,新增了AC、AP、STA等设备,也就是说可以在eNSP中进行WLAN相关的实验了。之前写过一篇文章《将eNSP Pro部署在华为云是什么体验》介绍了怎么在华为云上部署eNSP Pro,这次使用本地PC机在虚拟机中安装eNSP Pr…

配置交换机端口安全

1、实验目的 通过本实验可以掌握: 交换机管理地址配置及接口配置。查看交换机的MAC地址表。配置静态端口安全、动态端口安全和粘滞端口安全的方法。 2、实验拓扑 配置交换机端口安全的实验拓扑如图所示。 配置交换机端口安全的实验拓扑 3、实验步骤 &#xff…

excel中能不能用substitute函数把文本中某个字符起始的数据全部替换?

希望将A2单元格中,以光交开始的字符全部替换,本以为可以用公式SUBSTITUTE(A2,"光交",""),好像*不起作用。 很可惜的是,不仅SUBSTITUTE函数不支持通配符,像LEFT、RIGHT、MID、REPLACE函数都不支持通…