使用 AWS 在特定路径下提供单页应用程序
Serve single page app under specific path with AWS
目前我 mydomain.com
指向一个 Django EC2 实例,ABL 在它前面,CF 在 ABL 前面。
现在我需要在特定路径下提供 React 单页应用程序 mydomain.com/my-specific-path
(当然一切都在 HTTPS 下)
我尽我所能在 S3 存储桶中托管我的 SPA,并使用 CF 将调用重定向到该 S3。但是不可能以这种方式通过 HTTPS 为应用程序提供服务(因为 S3 托管和子文件夹)。
我现在正在考虑在我的 Django 应用程序前设置一个反向代理。但我不知道这是否是最好的解决方案,我也不知道最好的方法。
能否请您提供一些有关如何在特定路径下提供 SPA 服务的见解?
提前致谢。
您需要:
1) 将您的 ALB 作为源添加到您的 CloudFront 分配
2) 将您的 S3 存储桶 网站 URL 添加到您的 CloudFront 分配
注意: 从此处自动填充的下拉框中添加 S3 作为源将不适用于在 S3 之外托管网站。此功能仅用于托管静态文件。
2a) 可选择使用存储桶策略中的条件将您的 S3 存储桶锁定到 CloudFront,该条件检查 header 只有 CloudFront 和您的 S3 存储桶知道的值
3) 将 CloudFront 分配中的默认根 object 设置为 index.html
4) 将您的 React 应用程序 上传到 S3 存储桶 中的 sub-folder,而不是根目录中。此 sub-folder 必须与您在 CloudFront
中为 React 应用源设置的路径相匹配
5) 在指向您的 ALB 的 CloudFront 分配中设置默认行为
6) 在您的 CloudFront 分配中设置一个行为,将 my-specific-path/*
指向您的 S3 存储桶来源
7) 使用 AWS Certificate Manager 在您的 CloudFront 分配上终止 SSL
此设置应该为您的 Django 应用程序和托管在 S3 中的 React 应用程序提供 SSL。
我有这个 运行,屏幕截图如下:
目前我 mydomain.com
指向一个 Django EC2 实例,ABL 在它前面,CF 在 ABL 前面。
现在我需要在特定路径下提供 React 单页应用程序 mydomain.com/my-specific-path
(当然一切都在 HTTPS 下)
我尽我所能在 S3 存储桶中托管我的 SPA,并使用 CF 将调用重定向到该 S3。但是不可能以这种方式通过 HTTPS 为应用程序提供服务(因为 S3 托管和子文件夹)。
我现在正在考虑在我的 Django 应用程序前设置一个反向代理。但我不知道这是否是最好的解决方案,我也不知道最好的方法。
能否请您提供一些有关如何在特定路径下提供 SPA 服务的见解?
提前致谢。
您需要:
1) 将您的 ALB 作为源添加到您的 CloudFront 分配
2) 将您的 S3 存储桶 网站 URL 添加到您的 CloudFront 分配
注意: 从此处自动填充的下拉框中添加 S3 作为源将不适用于在 S3 之外托管网站。此功能仅用于托管静态文件。
2a) 可选择使用存储桶策略中的条件将您的 S3 存储桶锁定到 CloudFront,该条件检查 header 只有 CloudFront 和您的 S3 存储桶知道的值
3) 将 CloudFront 分配中的默认根 object 设置为 index.html
4) 将您的 React 应用程序 上传到 S3 存储桶 中的 sub-folder,而不是根目录中。此 sub-folder 必须与您在 CloudFront
中为 React 应用源设置的路径相匹配5) 在指向您的 ALB 的 CloudFront 分配中设置默认行为
6) 在您的 CloudFront 分配中设置一个行为,将 my-specific-path/*
指向您的 S3 存储桶来源
7) 使用 AWS Certificate Manager 在您的 CloudFront 分配上终止 SSL
此设置应该为您的 Django 应用程序和托管在 S3 中的 React 应用程序提供 SSL。
我有这个 运行,屏幕截图如下: