CloudFront - 从 S3 提供静态网站服务,将 API 请求路由到自定义端口上的 EC2

CloudFront - Serve static website from S3, route API requests to EC2 on custom port

我有一个与此类似的设置 question

我已将 CloudFront 设置为 CDN。在 CloudFront 中,我创建了两个来源:

现在,在 CloudFront 中,我添加了一种行为 (precedence 0),即所有对“/api/*”的请求都转发到 EC2 实例,包括所有 header 等等。整个过程应该通过 HTTPS(S3 和 EC2)提供服务。

问题是对 /api 的请求似乎 time-out。我不确定问题出在哪里。可能与:

有关

注意:我还没有更新DNS设置,那个CloudFront指向真实域。当前仅使用 CloudFront 生成的域。

我认为端口是问题所在。我不知道有什么方法可以通过 CloudFront 将一些请求转发到不同的源服务器端口。为什么不在 EC2 实例前面放一个 Application Load Balancer,监听标准端口 443 并转发到服务器上的端口 8888?这也将使您能够在将来扩展 API 服务器池。

我会尝试在 EC2 服务器上安装 Nginx 以接受请求 (80/443) 并将它们代理到端口 8888。似乎比 运行 ALB 更简单。