You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在两台EC2服务器部署nodejs+reactjs Web应用实现负载均衡与自动扩缩容

双EC2部署Node.js+React应用实现负载均衡与自动扩缩容方案

1. 前置环境准备

  • 两台EC2实例选择同一VPC同一可用区,安全组开放80/443端口出入站权限,放行实例间内网互通
  • 两台实例统一初始化运行环境:安装Node.js 16+、Nginx、pm2,分别完成前后端代码的部署与构建,确保双实例应用版本完全一致
    • React项目构建后的静态资源托管到Nginx静态目录,Nginx配置需添加try_files $uri $uri/ /index.html;规则,避免前端路由刷新404问题
    • Node.js后端服务使用pm2做进程守护,配置开机自启,避免服务意外中断

注意:全程不涉及单台实例升配部署多份服务的操作,完全匹配客户不接受单台高配置的要求

2. 负载均衡配置

直接使用AWS原生应用型负载均衡器(ALB),无需自行搭建负载均衡服务,适配自动扩缩容效率更高:

  • 在EC2控制台创建应用型负载均衡,监听HTTP/HTTPS端口,将两台EC2实例加入同一个目标组
  • 配置目标组健康检查规则:每隔30秒访问前后端预设的健康检查接口,自动剔除异常实例,将流量全部转发到正常实例
  • 业务域名直接解析到ALB的公网地址,所有用户请求经过ALB后均匀分发到两台EC2实例,实现负载均衡

3. 自动扩缩容配置

  • 基于上述目标组创建EC2自动扩缩容组(Auto Scaling Group),设置最小实例数为2,最大实例数可根据业务峰值需求自定义,日常保持两台实例作为基准运行
  • 配置扩缩容触发策略:选择基于流量/CPU使用率指标触发,例如单实例CPU使用率连续5分钟超过70%时自动新增1台实例承接流量,CPU使用率连续10分钟低于30%时自动缩减实例,始终保留不少于2台运行
  • 提前配置EC2启动模板,将运行环境、应用代码、服务启动脚本全部预置到模板中,扩容时新实例可以自动完成服务启动并加入目标组,无需人工介入

4. 效果验证

  • 模拟并发请求,查看ALB流量分发日志,确认两台实例的请求量分布均衡
  • 手动中断其中一台实例的服务,验证ALB会自动切流到正常运行的实例,无服务不可用情况
  • 模拟流量超过预设阈值,验证自动扩缩容规则触发,自动新增实例承接流量,流量回落后自动缩减到2台基准实例

内容的提问来源于stack exchange,提问作者Syed Abubakr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:27:00