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

如何通过路径路由将请求转发至多个AWS Amplify应用?

解决AWS Amplify多应用同一域名路径转发的方案

方案1:CloudFront + Lambda@Edge(推荐AWS原生方案)

这是最适配Amplify场景的托管式方案,无需维护额外服务器:

  • 配置步骤:
    1. 记录两个Amplify应用的默认域名(如app1.amplifyapp.com、app2.amplifyapp.com)。
    2. 创建CloudFront分发,添加两个自定义源:源类型选Custom Origin,源域名分别填入两个Amplify的域名,HTTPS端口设为443。
    3. 配置CloudFront行为规则:
      • 针对路径模式/app1/*,关联第一个Amplify源;
      • 针对路径模式/app2/*,关联第二个Amplify源;
      • 默认行为可指向其中一个应用,或返回404。
    4. 将主域名绑定到CloudFront分发:通过Route 53配置域名解析到CloudFront分配域名,同时在ACM中申请主域名的SSL证书并关联到CloudFront。
    5. 可选优化:用Lambda@Edge在Viewer Request阶段重写路径前缀(比如把/app1/page转发到Amplify的/page),确保Amplify应用能正确识别路由。
  • 优势:全托管服务,可靠性高;自动处理HTTPS和证书;支持复杂路径逻辑,无额外运维成本。
  • 注意:若Amplify应用关联了API网关或后端服务,需为这些路径单独配置CloudFront行为,确保请求正确转发。

方案2:ALB + EC2反向代理(自定义场景适用)

如果需要高度自定义的转发逻辑,可通过EC2做反向代理配合ALB实现:

  • 配置步骤:
    1. 启动EC2实例,安装Nginx(或Apache)作为反向代理服务。
    2. 编写Nginx配置实现路径转发:
      server {
          listen 80;
          server_name your-main-domain.com;
      
          location /app1/ {
              proxy_pass https://app1.amplifyapp.com/;
              proxy_set_header Host app1.amplifyapp.com;
              proxy_set_header X-Forwarded-Proto $scheme;
              # 重写路径,移除/app1前缀
              rewrite ^/app1/(.*)$ /$1 break;
          }
      
          location /app2/ {
              proxy_pass https://app2.amplifyapp.com/;
              proxy_set_header Host app2.amplifyapp.com;
              proxy_set_header X-Forwarded-Proto $scheme;
              rewrite ^/app2/(.*)$ /$1 break;
          }
      }
      
    3. 创建ALB,配置HTTPS证书(ACM),将目标组指向EC2实例的80端口。
    4. 将主域名解析到ALB的DNS地址。
  • 优势:支持任意复杂的转发、重写逻辑;适合有EC2运维经验的团队。
  • 劣势:需要维护EC2实例,包括扩容、更新、故障排查,增加运维成本;需配置Auto Scaling Group保障可用性。

方案3:Amplify自定义域名 + 重写规则(有限场景备选)

仅适合两个应用均为单页应用、资源路径全为相对路径的场景:

  • 配置步骤:
    1. 为其中一个Amplify应用绑定主域名。
    2. 在该应用的Amplify控制台中添加重写和重定向规则:
      • 源地址:/app2/<*>
      • 目标地址:https://app2.amplifyapp.com/<*>
      • 类型选择200 (Rewrite)
  • 局限性:Amplify的重写规则是前端层面的转发,若第二个应用使用绝对路径加载资源,会导致资源请求失败(请求会发送到主域名的/app2路径而非Amplify域名),兼容性有限。

内容的提问来源于stack exchange,提问作者Ramon Paris

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 07:06:32