目前,我在mydomain.com上有我的网络服务器,在static.mydomain.com和media.mydomain.com有两个CDN。
是否有可能在mydomain.com下拥有所有内容? e.g。
mydomain.com - 网络服务器
mydomain.com/static - 静态CDN
mydomain.com/media - 媒体CDN
答案 0 :(得分:13)
这种配置应该可以使用Route 53的别名功能,S3重定向和CloudFront行为。
1 配置具有多个来源和路径匹配行为的CloudFront分配
看起来你有三个不同的内容来源,' webserver'内容,静态'内容和媒体'内容。 CloudFront应该能够为同一域名后面的每个来源提供内容。要设置它,你需要 在CloudFront分配中配置三个不同的来源。 这是创建CloudFront分配的指南,我在下面提供了一个概述: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CreatingDownloadDistributions.html
2 配置CloudFront以使用您的域名
创建CloudFront分配时,您将在' cloudfront.net'下发布分发名称。域。为了让CloudFront与您自己的域名一起使用,您需要配置指向“www.mydomain.com”的CNAME。域到CloudFront分配DNS名称。然后,您需要配置CloudFront分配,以便在看到www.mydomain.com域的请求时进行响应。
文档:http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html
此时,当您浏览到www.mydomain.com时,您将被路由到最近的CloudFront边缘位置,并且返回的内容将来自三个不同内容来源之一,基于路径请求。但是你也喜欢&m; mydomain.com'以同样的方式行事。您可以通过创建具有Route 53别名和S3重定向的www-lyzer来实现此目的。
3 在' mydomain.com'的区域顶点创建一个www-a-lizer。使用Route 53别名和S3重定向
这篇博文提供了53号路线Alias和S3重定向的相当好的演示,对于这个例子,我们需要在下面的步骤中进行一些调整:
http://aws.typepad.com/aws/2012/12/root-domain-website-hosting-for-amazon-s3.html
<RoutingRules> <RoutingRule> <Redirect> <HostName>www.mydomain.com</HostName> </Redirect> </RoutingRule> </RoutingRules>
姓名:&#39; mydomain.com&#39;
输入:&#39; A&#39;
别名:&#39;是&#39;
对评论的回应:
第三步的目标是确保向'mydomain.com&#39;通过CloudFront分发进行定向。理想情况下,我们可以按照步骤2中的说明使用CNAME,但CNAME不能在区域顶点使用。暂时这意味着我们必须跳过一些箍。
可以在S3中使用扩展重定向规则,根据路径匹配重定向到不同的源。这意味着您的所有用户请求都会在重定向到CDN或直接转到您的源之前命中S3。这会给每个请求增加一点延迟。要从CDN获得最佳性能,您希望用户尽可能直接连接(理想情况下不使用重定向)。上面提出的解决方案依赖于重定向仅发生一次的事实(当用户请求&#m; mydomain.com&#39;),并且所有后续用户请求直接发送到www.mydomain.com&#39; ;
通过CloudFront进行POST和身份验证。如果配置为执行此操作,CloudFront会将cookie和查询字符串传递回原点。如果您的auth系统可以利用这些方法中的任何一种进行令牌传递,那么您应该能够通过CloudFront传递您的身份验证请求。目前,CloudFront不会将POST请求传递给源。如果您使用客户端脚本进行POST,则可以使用其他DNS名称围绕CloudFront进行POST。例如&#39; post.www.mydomain.com&#39 ;.
答案 1 :(得分:2)
简答:不。
答案很长:虽然有可能,但效率极低。您可以设置代理服务器(例如在Nginx中)或为自定义路径规则设置HAProxy,但它会使您的带宽成本加倍(CDN - &gt;代理 - &gt;客户端,而不是CDN - &gt;客户端)。此外,它没有意义,因为首先使用CDN基本上没有任何好处。
这是基于mydomain.com
确实提供动态内容的假设。如果没有,您也可以在S3上托管整个域(mydomain.com
)。