为静态Amazon S3内容和动态heroku内容配置代理的最简单方法

时间:2016-03-24 18:56:28

标签: amazon-web-services heroku amazon-s3 dns

我的移动应用程序由heroku(foo.herokuapp.com)上的动态部分组成,该部分为我们向未安装该应用程序的用户公开的某些内容提供API和Web视图。当然还有一个静态登录页面(http://foo.co),它存放在S3上。

目前,我有DNS设置来解析foo.co到我们的S3实例。 S3有路由规则将我们的动态内容(http://foo.co/some_dynamic_data/1234/)重定向到我们的heroku服务器。

鉴于它是一个3XX重定向,这会给用户带来非常难看的体验,因为他们的浏览器栏现在将反映我们的heroku后端。

问题: 是否有一个简单的代理服务,我可以部署具有特殊的路由规则,以将动态内容路由到heroku和静态内容到S3,以便我可以将foo.co DNS指向代理,而不必通过重定向向用户公开后端? / p>

1 个答案:

答案 0 :(得分:3)

CloudFront的。

不要说,"但我认为这是CDN。"这是它的销售方式,但它也是一个反向代理HTTP请求路由器,可以根据请求路径选择后端。可以使用缓存功能,如果您不需要/想要/理解它,可以禁用它。

创建一个包含两个来源的分发(即CloudFront称之为后端服务器的分布) - 一个用于存储桶,另一个用于API端点。

在分发设置中将example.com主机名配置为备用主机名。

创建路径行为以选择路径到哪个路径的路径模式。如果其中一个显然是默认选择,捕获其他未配置的路径,则将默认行为指向该特定原点。

将DNS主机名指向CloudFront分配。

可选:在您的网站上安装一些SSL,其中包含来自Amazon Certificate Manager的免费证书,该证书与CloudFront集成。