网站高可用架构方案:负载均衡+双机热备配置指南
单台服务器最大的风险是:一旦宕机,网站完全无法访问。对电商、企业官网等业务来说,每小时停机可能损失数万元。实现高可用的核心方案是负载均衡+多台服务器。
本文从单机架构出发,演示如何升级为高可用架构,包含阿里云SLB配置、健康检查设置、故障自动切换验证。
高可用架构的三层防护
企业级高可用架构通过三层防护,确保任意单点故障不影响服务:
配置是否够用需用实际应用、数据集、缓存策略与流量峰值压测;记录实例型号、软件版本、测试命令、并发数、持续时间、错误率及P95/P99延迟。日访问量不能直接换算为并发或固定配置的承载上限。 是否有可用优惠、适用产品、账号资格、地域、购买时长、门槛、有效期及能否叠加,均需以当前官方规则和该账号结算页为准;本文不承诺固定金额、折扣或库存。
| 层级 | 单机架构 | 高可用架构 | 可用性提升 |
|---|---|---|---|
| 应用层 | 1台ECS | 2台ECS + SLB | 待按实际负载测量 |
| 数据库层 | ECS自建MySQL | RDS主从高可用 | 待按实际负载测量 |
| 存储层 | 本地磁盘 | OSS对象存储 | 待按实际负载测量 |
最小高可用方案(适合中小企业)
- 负载均衡: 阿里云SLB(性能保障型,100元/月)
- 假设示例(非官方报价或实际账单):应用服务器: 2台ECS 2核4G(1200元/年 × 2) 此处金额和用量均只作为演算输入假设,适用地域、计费项与实际单价尚未核实;请替换为当前结算页单价及自己的用量后重新计算,不能据此认定节省或可购买。
- 数据库: RDS高可用版(600元/年)
- 假设示例(非官方报价或实际账单):总成本: 约4200元/年,实现99.9%可用性 此处金额和用量均只作为演算输入假设,适用地域、计费项与实际单价尚未核实;请替换为当前结算页单价及自己的用量后重新计算,不能据此认定节省或可购买。
SLB配置实战:从单机到双机
假设现有1台ECS运行网站,升级为高可用架构的步骤:
- 购买SLB:选择性能保障型,规格slb.s2.small(支持5000并发)
- 克隆ECS:对现有ECS创建镜像,用镜像新建第2台ECS
- 添加后端服务器:SLB控制台,把2台ECS加入后端服务器池
- 配置监听规则:HTTP 80端口,轮询算法,会话保持关闭
- 健康检查:HTTP检查,路径/index.html,间隔2秒,超时5秒,连续3次失败标记不健康
- 域名切换:把域名A记录从ECS IP改为SLB IP
💡 关键配置
健康检查路径很重要:不要用动态页面(如首页查数据库),用一个静态HTML或专门的健康检查接口,返回200状态码即可。否则数据库慢会导致健康检查失败,服务器被误判为故障。
故障切换验证:真实效果测试
配置完成后,必须验证故障切换是否生效:
| 测试场景 | 操作 | 预期结果 | 恢复时间 |
|---|---|---|---|
| 服务器宕机 | 在ECS1上停止nginx | SLB检测到异常,流量全部转发到ECS2 | 6秒(3次健康检查) |
| 网络故障 | 在安全组阻断ECS1的80端口 | SLB标记ECS1不健康,移除流量 | 6秒 |
| 应用异常 | ECS1的网站返回502错误 | 健康检查失败,流量切到ECS2 | 6秒 |
⚠️ 注意
如果用了会话保持(Session Sticky),同一用户的请求会一直发到同一台服务器,故障时该用户会中断服务。建议:①用Redis做Session共享 ②关闭会话保持,让SLB自由调度
常见问题
总结
网站从单机升级到高可用架构,核心是SLB + 多台ECS + RDS主从:
假设示例(非官方报价或实际账单):成本方面,最小高可用方案约4200元/年,可实现99.9%可用性,每年停机不超过9小时。对于日收入超过500元的网站,这笔投入绝对值得。 此处金额和用量均只作为演算输入假设,适用地域、计费项与实际单价尚未核实;请替换为当前结算页单价及自己的用量后重新计算,不能据此认定节省或可购买。