HTTPS vs HTTPstream量的不同路由?

目前我正在使用Amazon Route53来pipe理我们的DNS并遇到了麻烦。

我们的静态内容由AWS S3提供,但是S3不支持使用CNAME的HTTPS。 为了解决跨域问题,我们的静态内容通过CNAME提供。

所以,我想继续通过S3提供HTTP内容,并通过我们自己的networking服务器来提供我们的HTTPS内容。

但是我不确定如何将HTTPstream量路由到一个域(s3),并将HTTPS路由到另一个域(一个web服务器)。

DNS只关心将主机名parsing为IP,而不关心协议或端口号 – 这意味着直接回答你的问题; 否:您不能使用它将https://example.com路由到一个IP,而将http://example.com路由到另一个IP。


有一些常见的方法可以解决这个问题:

  • 使用反向代理监听http://https://example.com ,例如nginx 。 此代理可以查看协议,甚至请求path,并适当地路由到其他服务器。
    • 除了使您的场景成为可能之外,您还可以获得其他好处:SSL卸载可以减less应用服务器的负载,并且可以透明地运行多个应用服务器以实现冗余或扩展。
    • 下行:如果你所有的服务器都不在同一个本地networking上,那么当你通过互联网两次时,这是非常低效的(而且很慢)。
  • 使用单独的子域,并让您的服务器发送CORS标头。 有很多关于如何做到这一点的资源,所以我不会在这里进入。
    • 基本上,你会有http://static.example.comhttps://example.com 。 DNS会将static.example.comparsing为S3,将example.comparsing为其他应用程序服务器。

如果你的应用程序服务器被慢速networking连接分开(听起来就像是这样),那么恕我直言,唯一的办法就是基于DNS的解决scheme。