我正在尝试将CDN从rackspace迁移到aws。
在前者中,所有内容都通过CNAME记录映射到单个容器,如下所示:
container1 = CNAME = container1.cdndomain
container2 = CNAME = container2.cdndomain
container3 = CNAME = container3.cdndomain当我们设置aws时,我读到的所有内容都是设置一个(仅) cloudfront,具有各种存储桶。这就是我所做的。
现在我试图以某种方式将所有这些容器重新映射到他们新的aws主页和相应的“桶”中,但单一的cloudfront让我很难做到这一点。
我不想查看数千行代码和配置文件,并更改所有当前的urls (例如,手动将tainer1.cdndomain更改为cdndomain/tainer1)。
但我找不到重新映射的方法
this: http://bgimgs.cdndomain/image到aws的对应物
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]但这也不起作用。
有什么想法吗?
发布于 2015-07-10 09:51:45
我不知道建议从何而来,只使用一个带有多个S3存储桶的CloudFront发行版。当然,你可以,但如果它不符合你的需求,你没有理由这样做。
只需创建多个发行版即可。
如果你已经用不同的主机名访问它们,它们是不同的对象集合,我真的想不出有什么理由这样的建议适用于你的情况。建议您只使用一个具有多个存储桶的CloudFront发行版的唯一原因是将所有内容(来自不同的存储桶)存储在一个主机名后面,或者存储在每个主机名下具有相同路径的多个主机名后面(让浏览器更快地加载资产的一个技巧是为了让浏览器相信这些资产都来自不同的主机,因此浏览器将打开更多的并行连接)。
在您的情况下,这似乎根本不是您所需要的。发行版本身是免费的。问题解决了。
关于DNS,其他供应商可能会接受该配置,但这并不意味着它是有效的配置。不是。您不能使用DNS更改路径。
关于.htaccess,S3不处理.htaccess文件。如果你是在你的web服务器上创建它们,那也是行不通的,因为web服务器不会看到这些请求来重定向它们。
https://stackoverflow.com/questions/31326162
复制相似问题