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

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

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

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

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

问题: 有没有我可以部署的简单代理服务,它有特殊的路由规则,可以将动态内容路由到 heroku,将静态内容路由到 S3,这样我就可以将 foo.co DNS 指向代理,而不必通过重定向向用户公开后端?

最佳答案

云端。

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

创建一个具有两个来源的分配(这就是 CloudFront 对后端服务器的称呼)——一个用于存储桶,一个用于 API 端点。

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

创建路径行为以选择哪些路径模式路由到哪个起点。如果有一个明显的选择,其中之一是默认值,捕获每条未配置的路径,将默认行为指向该特定来源。

将 DNS 主机名指向 CloudFront 分配。

可选:在您的站点上安装一些 SSL,并使用来自与 CloudFront 集成的 Amazon Certificate Manager 的免费证书。

关于amazon-web-services - 为静态 Amazon S3 内容和动态 heroku 内容配置代理的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36207982/

相关文章:

apache - 错误-suexec :notice

Facebook 墙贴错误:OAuthException::(#1500) The url you supplied is invalid

amazon-web-services - lambda 无法访问受云端限制的 s3 存储桶

amazon-s3 - 更改已上传到 AWS S3 存储桶的多个文件的默认内容类型

java - 在使用存储在 amazon s3 上的数据运行 Map reduce WordCount 作业时需要帮助

amazon-web-services - 如何使用匿名用户将 aws CLI 配置为 s3 cp

python - 使用 Boto3 为 Lambda 函数创建触发器

amazon-web-services - 将 EBS 从 Spot 队列附加到 EC2 实例

javascript - Heroku 套接字轮询的响应时间较长

ruby-on-rails - Heroku 推送问题第 2 部分 - Postgresql - PGError 关系不存在 - Ruby on Rails