如何在Linux中部署高可用架构

来源:站长站作者:狼行天下头衔:草根站长
导读:本期聚焦于小伙伴创作的《如何在Linux中部署高可用架构》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在Linux中部署高可用架构》有用,将其分享出去将是对创作者最好的鼓励。

在Linux系统中部署高可用架构的核心目标是消除单点故障,让业务服务在部分节点出现问题时仍能正常运行。常见的高可用架构通常包含负载均衡层、应用服务层和数据存储层三个部分,每层通过主备或多节点冗余的方式实现故障自动切换。

如何在Linux中部署高可用架构

高可用架构设计思路

高可用架构的实现依赖三个核心机制:冗余部署、状态检测、自动切换。冗余部署指同一服务至少部署两个节点,分为主节点和备节点;状态检测通过脚本或工具定时检查主节点的服务运行状态;自动切换则是当主节点故障时,备节点自动接管服务,整个过程对业务侧无感知。

常用组件选型

  • 负载均衡层:使用Keepalived搭配Nginx,Keepalived负责虚拟IP的漂移和节点健康检查,Nginx负责流量分发
  • 应用服务层:多节点部署相同的应用服务,通过负载均衡层分发请求
  • 数据存储层:使用MySQL主从复制搭配MHA实现数据库的高可用

负载均衡层部署步骤

首先准备两台Linux服务器,分别作为Keepalived的主节点和备节点,两台节点都安装Nginx和Keepalived。

安装依赖组件

在两台节点执行以下命令安装所需软件:

# 安装Nginx
yum install -y nginx
# 安装Keepalived
yum install -y keepalived

配置Keepalived主节点

修改主节点的Keepalived配置文件/etc/keepalived/keepalived.conf,内容如下:

global_defs {
   router_id nginx_master
}

vrrp_script check_nginx {
    script "/usr/local/bin/check_nginx.sh"
    interval 2
    weight -20
}

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.0.100
    }
    track_script {
        check_nginx
    }
}

配置Keepalived备节点

备节点的配置文件和主节点类似,仅需要修改router_idnginx_backupstateBACKUPpriority设置为比主节点小的数值,例如90。

编写Nginx状态检测脚本

创建检测脚本/usr/local/bin/check_nginx.sh,用于定时检查Nginx是否运行:

#!/bin/bash
# 检查Nginx进程是否存在
count=`ps -ef | grep nginx | grep -v grep | wc -l`
if [ $count -eq 0 ]; then
    # 若Nginx未运行,尝试启动
    systemctl start nginx
    sleep 2
    # 再次检查,若仍无法启动则关闭Keepalived触发切换
    count=`ps -ef | grep nginx | grep -v grep | wc -l`
    if [ $count -eq 0 ]; then
        systemctl stop keepalived
    fi
fi

给脚本添加执行权限:

chmod +x /usr/local/bin/check_nginx.sh

启动服务

两台节点分别启动Nginx和Keepalived服务,并设置开机自启:

systemctl start nginx
systemctl start keepalived
systemctl enable nginx
systemctl enable keepalived

此时虚拟IP 192.168.0.100会绑定在主节点的网卡上,访问该IP会转发到Nginx服务。当主节点故障时,虚拟IP会自动漂移到备节点,实现负载均衡层的高可用。

应用服务层部署

应用服务层可以部署多个相同的应用节点,例如Tomcat、Java应用等,在Nginx的配置文件中添加 upstream 配置实现负载均衡:

http {
    upstream app_server {
        server 192.168.0.101:8080;
        server 192.168.0.102:8080;
        server 192.168.0.103:8080;
    }

    server {
        listen 80;
        server_name localhost;

        location / {
            proxy_pass http://app_server;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
}

修改Nginx配置后执行nginx -s reload重载配置,此时流量会被分发到三个应用节点,单个应用节点故障不会影响整体服务。

数据存储层高可用部署

以MySQL为例,采用主从复制加MHA(Master High Availability)的方案实现高可用。首先配置MySQL主从复制,主库开启binlog,从库同步主库数据,然后部署MHA管理节点,监控主库状态,当主库故障时自动将从库提升为主库。

配置MySQL主从复制

主库配置文件/etc/my.cnf添加以下内容:

[mysqld]
server-id=1
log-bin=mysql-bin
binlog_format=row

从库配置文件添加:

[mysqld]
server-id=2
relay-log=relay-bin
read-only=1

重启主从库的MySQL服务后,在主库创建同步账号,从库配置同步主库的信息,启动同步进程即可完成主从复制配置。

部署MHA

在所有MySQL节点和管理节点安装MHA依赖包,配置管理节点的配置文件,指定主库和从库的信息,启动MHA管理进程。当主库故障时,MHA会自动检测并完成主从切换,整个过程不需要人工干预。

高可用架构验证

完成所有组件部署后,可以通过以下方式验证高可用效果:

  • 访问虚拟IP 192.168.0.100,确认能正常返回应用响应
  • 关闭主节点的Keepalived服务,确认虚拟IP漂移到备节点,访问服务不受影响
  • 关闭其中一个应用节点,确认流量仅分发到剩余的正常节点
  • 关闭MySQL主库,确认MHA自动将从库提升为主库,应用数据读写正常

通过以上步骤,即可在Linux系统中完成一套完整的高可用架构部署,保障业务服务的稳定运行。

Linux高可用架构KeepalivedNginxMySQL修改时间:2026-06-11 03:12:39

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。