我正在尝试在 S3 和 CloudFront 上设置一个应用程序,并且前端应用程序正在使用 Flutter。

前端

我已成功部署 S3 和 CloudFront。

假设域名为dev.demo.thiha.com。SSL 由 AWS Cert Manager 颁发。

后端

后端由 Laravel 实现,并具有管理仪表板。

假设dev.demo.thiha.com/admin/login为前端提供服务的端点是dev.demo.thiha.com/api,它计划从 Laravel 后端提供服务。

我计划为此设置 Apache。

问题:

我可以使用同一个子域名来为 ColudFront 和 Apache 提供服务吗?

对于管理员/登录路由,我如何从 Apache 提供服务? 实现我的场景的最佳方法是什么?


最佳答案
1

如果有人遇到与我相同的问题,我使用 Lambda Edge 函数来执行重定向部分,并且该函数通过 cloudfront 针对路径模式的新行为调用/admin/*

更新 CloudFront 行为:

  1. 转到 CloudFront 控制台。
  2. 选择您的发行版并转到
  3. “行为”选项卡。编辑或创建新的路径模式行为
    /admin/*
  4. 将原点设置为您的 Apache 服务器。
  5. 使用已发布版本的 ARN 将 Lambda@Edge 函数附加到行为的来源请求事件。