我有一个非常静态的网站。除了两次调用API之外,几乎所有内容都指向静态内容,包括根URL,所以它看起来像这样
www.example.com< - s3上的静态内容
www.example.com/call_1< - 在EC2实例上调用api,仅使用javascript
www.example.com/call_2< ---调用api,仅使用javascript
www.example.com/*< - s3上的静态内容
根据我的理解,我无法根据路径配置DNS路由吗?我应该创建一个子域,将调用重定向到EC2实例:api.example.com?
在EC2实例上添加另一层的开销以重定向请求对我来说似乎不是一个好选择。所以,如果我能用子域做得更好。
答案 0 :(得分:2)
根据定义,DNS是正确的,不允许您在路径中路由 - DNS服务器永远不会看到http请求的那一部分。
子域名肯定是可能的,虽然如果这些是ajax请求(而不是json-p),你将不得不阅读CORS标题,这允许你指示浏览器允许交叉源ajax调用。
另一种可能性是将cloudfront用作最终用户和内容之间的层。在cloudfront lingo中,您可以设置不同的行为来将不同的路径路由到不同的起源,其中起源可以是s3存储桶,弹性负载平衡器或任意IP地址/主机。这也有一个好处,即您的s3内容将缓存到最终用户附近。