网站高可用架构方案:负载均衡+双机热备配置指南

单台服务器最大的风险是:一旦宕机,网站完全无法访问。对电商、企业官网等业务来说,每小时停机可能损失数万元。实现高可用的核心方案是负载均衡+多台服务器

本文从单机架构出发,演示如何升级为高可用架构,包含阿里云SLB配置、健康检查设置、故障自动切换验证。

立即了解 阿里云负载均衡 SLB

查看详细配置、价格和使用指南

访问官方页面 →

高可用架构的三层防护

企业级高可用架构通过三层防护,确保任意单点故障不影响服务:

层级单机架构高可用架构可用性提升
应用层1台ECS2台ECS + SLB99.9%
数据库层ECS自建MySQLRDS主从高可用99.95%
存储层本地磁盘OSS对象存储99.995%
最小高可用方案(适合中小企业)
  • 负载均衡 阿里云SLB(性能保障型,100元/月)
  • 应用服务器: 2台ECS 2核4G(1200元/年 × 2)
  • 数据库: RDS高可用版(600元/年)
  • 总成本: 约4200元/年,实现99.9%可用性

SLB配置实战:从单机到双机

假设现有1台ECS运行网站,升级为高可用架构的步骤:

  1. 购买SLB选择性能保障型,规格slb.s2.small(支持5000并发)
  2. 克隆ECS:对现有ECS创建镜像,用镜像新建第2台ECS
  3. 添加后端服务器:SLB控制台,把2台ECS加入后端服务器池
  4. 配置监听规则:HTTP 80端口,轮询算法,会话保持关闭
  5. 健康检查:HTTP检查,路径/index.html,间隔2秒,超时5秒,连续3次失败标记不健康
  6. 域名切换:把域名A记录从ECS IP改为SLB IP
💡 关键配置

健康检查路径很重要:不要用动态页面(如首页查数据库),用一个静态HTML或专门的健康检查接口,返回200状态码即可。否则数据库慢会导致健康检查失败,服务器被误判为故障。

故障切换验证:真实效果测试

配置完成后,必须验证故障切换是否生效:

测试场景操作预期结果恢复时间
服务器宕机ECS1上停止nginxSLB检测到异常,流量全部转发到ECS26秒(3次健康检查)
网络故障在安全组阻断ECS1的80端口SLB标记ECS1不健康,移除流量6秒
应用异常ECS1的网站返回502错误健康检查失败,流量切到ECS26秒
⚠️ 注意

如果用了会话保持(Session Sticky),同一用户的请求会一直发到同一台服务器,故障时该用户会中断服务。建议:①用Redis做Session共享 ②关闭会话保持,让SLB自由调度

开始使用

如果你对 阿里云负载均衡 SLB 感兴趣,可以访问官方页面查看详细配置和价格信息。

查看详细信息 →

常见问题

单台服务器要不要上SLB?

不需要。SLB的核心价值是流量分发和故障切换,单台服务器用SLB没有意义,反而多花钱(100元/月)。建议至少2台服务器时再上SLB。

两台服务器如何同步代码?

三种方案:①用Git,每次发布时两台服务器都执行git pull ②用rsync同步文件 ③把代码和上传文件存在NAS共享存储,两台服务器挂载同一个NAS。推荐方案③,代码和用户上传文件自动同步。

SLB会不会成为新的单点故障?

不会。阿里云SLB本身是集群架构,多台负载均衡设备互为备份,可用性99.95%。而且SLB故障时,阿里云会在秒级自动切换到备用设备,对用户透明。

健康检查太频繁会不会影响性能?

影响很小。每台服务器每2秒收到1次健康检查请求,返回一个静态HTML(几KB),几乎不占CPU和带宽。但不要把健康检查路径设置为复杂的动态页面,否则会增加数据库压力。

总结

网站从单机升级到高可用架构,核心是SLB + 多台ECS + RDS主从

  • 应用层:2台ECS + SLB负载均衡,单机故障6秒自动切换
  • 数据库层:RDS高可用版,主库故障秒级切换到从库
  • 存储层:OSS对象存储NAS共享文件,多服务器代码同步

成本方面,最小高可用方案约4200元/年,可实现99.9%可用性,每年停机不超过9小时。对于日收入超过500元的网站,这笔投入绝对值得。