我目前正在使用 Amazon Route53 来管理我们的 DNS,但遇到了麻烦。
我们的静态内容由 AWS S3 提供,但是,S3 不支持带有 CNAME 的 HTTPS。为了解决跨域问题,我们的静态内容通过 CNAME 提供。
所以,我想继续通过 S3 提供 HTTP 内容,并通过我们自己的网络服务器提供我们的 HTTPS 内容。
但是我不确定如何将 HTTP 流量路由到一个域 (s3),并将 HTTPS 路由到另一个域(网络服务器)。
我目前正在使用 Amazon Route53 来管理我们的 DNS,但遇到了麻烦。
我们的静态内容由 AWS S3 提供,但是,S3 不支持带有 CNAME 的 HTTPS。为了解决跨域问题,我们的静态内容通过 CNAME 提供。
所以,我想继续通过 S3 提供 HTTP 内容,并通过我们自己的网络服务器提供我们的 HTTPS 内容。
但是我不确定如何将 HTTP 流量路由到一个域 (s3),并将 HTTPS 路由到另一个域(网络服务器)。
DNS 只关心将主机名解析为 IP,而不关心协议或端口号——这意味着直接回答你的问题;否:您不能使用它路由
https://example.com
到一个 IP 和http://example.com
另一个 IP。有几种常见的方法可以解决这个问题:
http://
和的反向代理https://example.com
,例如nginx。该代理可以查看协议甚至请求路径,并适当地路由到其他服务器。http://static.example.com
andhttps://example.com
。DNS 将解析static.example.com
为 S3,然后解析example.com
为您的其他应用服务器。如果您的应用程序服务器被慢速网络连接(听起来确实如此)分隔开,那么恕我直言,唯一可行的方法是基于 DNS 的解决方案。