网站高可用架构方案:负载均衡+双机热备配置指南
单台服务器最大的风险是:一旦宕机,网站完全无法访问。对电商、企业官网等业务来说,每小时停机可能损失数万元。实现高可用的核心方案是负载均衡+多台服务器。
本文从单机架构出发,演示如何升级为高可用架构,包含阿里云SLB配置、健康检查设置、故障自动切换验证。
高可用架构的三层防护
企业级高可用架构通过三层防护,确保任意单点故障不影响服务:
| 层级 | 单机架构 | 高可用架构 | 可用性提升 |
|---|---|---|---|
| 应用层 | 1台ECS | 2台ECS + SLB | 99.9% |
| 数据库层 | ECS自建MySQL | RDS主从高可用 | 99.95% |
| 存储层 | 本地磁盘 | OSS对象存储 | 99.995% |
最小高可用方案(适合中小企业)
- 负载均衡: 阿里云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元的网站,这笔投入绝对值得。