我正在尝试将CDN从rackspace迁移到aws。
在前者中,所有内容都通过CNAME记录映射到各个容器,如下所示:
container1 = CNAME = container1.cdndomain
container2 = CNAME = container2.cdndomain
container3 = CNAME = container3.cdndomain
当我们设置aws时,我读到的所有内容都表示要设置一个(仅)云端,并使用各种存储桶。这就是我的所作所为。
现在我试图以某种方式将所有这些容器重新映射到他们新的家庭和相应的桶中。但单一的云端对我来说很难。
我宁愿不通过数千行代码和配置文件并更改所有当前网址(例如,手动将container1.cdndomain更改为cdndomain / container1)。
但我无法找到重新映射的方法
this: http://bgimgs.cdndomain/image
对于它的对手
here: http://cdndomain/bucket/image
我们使用Zerigo进行DNS,接口将接受此CNAME路径:
container.domain = CNAME = cdndomain/bucket
但是aws并没有将其路由到正确的存储桶。
我尝试过.htaccess解决方案
RewriteEngine On
RewriteCond %{HTTP_HOST} ^container1\.cdndomain(.*)$ [NC]
RewriteRule ^(.*)$ http:\/\/cdndomain/container1/$1 [L,R=301]
但那也不起作用。
有什么想法吗?
答案 0 :(得分:0)
我不知道建议来自哪里只使用一个具有多个S3存储桶的CloudFront分配。当然,您可以,但如果它不符合您的需求,则 没有理由。
只需创建多个发行版。
如果您已经使用不同的主机名访问它们,它们是不同的对象集合,我实际上无法想到这些建议适用于您的情况。我想到的唯一原因是,建议您只使用一个具有多个存储桶的CloudFront发行版,将所有内容(来自不同的存储桶)存储在一个主机名后面,或者存储在具有相同路径的多个主机名之后用于每个主机名(让浏览器更快地加载资产的一个方法是说服浏览器资产都来自不同的主机,因此浏览器会打开更多的并行连接。)
在您的情况下,这似乎不是您需要的。分配本身是免费的。问题解决了。
关于DNS,其他供应商可能接受该配置,但这并不意味着它是有效的配置。事实并非如此。您无法使用DNS更改路径。
关于.htaccess
,S3不处理.htaccess
个文件。如果您在Web服务器上创建它们,那也是不行的,因为Web服务器不会看到请求以重定向它们。