CloudFront 静态网站和 EC2 API 在同一域中
CloudFront static website and EC2 API on same domain
我在 CloudFront 上托管了我的静态网站。
有没有办法让我使用相同的域名但不同的端口来 API 调用 EC2 实例?
例如。 example.com:3000
应该重定向到 EC2 实例,而 example.com
(又名 example.com:443
或 example.com:80
)应该重定向到 CloudFront。
无法根据端口号识别目标主机。 DNS 名称决定了您的浏览器连接到哪里。
不过,你仍然可以实现你想要的,只是不是通过端口号。
您可以配置您的 CloudFront 分配以将请求转发到您的静态网站或 API,具体取决于 URL 中的路径。
为此,您将在 CloudFront 分配中配置多个来源和多个行为:
/api/*
-> EC2 来源
- 其他一切 -> 静态网站来源
在您的浏览器中,它显示为一个网站。当您请求 https://www.example.com/page1.html
时,CloudFront 会将请求转发到静态网站。当您请求 https://www.example.com/api/MyRestMethod
时,CloudFront 会将请求转发到您的 EC2。
这还允许您在 API 和静态网站之间使用相同的 ACM 证书进行 HTTPS。
我在 CloudFront 上托管了我的静态网站。
有没有办法让我使用相同的域名但不同的端口来 API 调用 EC2 实例?
例如。 example.com:3000
应该重定向到 EC2 实例,而 example.com
(又名 example.com:443
或 example.com:80
)应该重定向到 CloudFront。
无法根据端口号识别目标主机。 DNS 名称决定了您的浏览器连接到哪里。
不过,你仍然可以实现你想要的,只是不是通过端口号。
您可以配置您的 CloudFront 分配以将请求转发到您的静态网站或 API,具体取决于 URL 中的路径。
为此,您将在 CloudFront 分配中配置多个来源和多个行为:
/api/*
-> EC2 来源- 其他一切 -> 静态网站来源
在您的浏览器中,它显示为一个网站。当您请求 https://www.example.com/page1.html
时,CloudFront 会将请求转发到静态网站。当您请求 https://www.example.com/api/MyRestMethod
时,CloudFront 会将请求转发到您的 EC2。
这还允许您在 API 和静态网站之间使用相同的 ACM 证书进行 HTTPS。