【问题标题】:Magento - Amazon Cloudfront CDN and CachingMagento - Amazon Cloudfront CDN 和缓存
【发布时间】:2012-09-26 16:40:58
【问题描述】:

我正在尝试了解 CDN 和缓存,但没有找到答案。

如何让亚马逊 CDN 缓存来自原始服务器缓存图像的图像?有没有办法测试它?

我将 CDN 源映射到我的服务器,所以当它找不到时

http://cdn.mywebsite.com/media/catalog/product/cache/1/small_image/190x/9df78eab33525d08d6e5fb8d27136e95/i/m/img101.jpg

它会寻找

http://mywebsite.com/media/catalog/product/cache/1/small_image/190x/9df78eab33525d08d6e5fb8d27136e95/i/m/img101.jpg

您可以在 Firebug 中看到,所有 magento 缓存的元素都得到一个 301 永久移动,而静态文件得到一个 OK 200 响应。此外,如果我输入云端 URL,它会自动更改为我的 magento 缓存元素的 url,但仍保留为静态元素的云端 url。

如果我稍后再回去,即使是一整天,它都不会使用 CDN 源,这让我相信它没有在 Amazon 上缓存我的 magento 缓存的 css/js/images。

如果我关闭缓存和 js/css 优化,那么它会向云端 cdn 发出过多的 http 请求。

【问题讨论】:

    标签: magento amazon-s3 amazon-cloudfront


    【解决方案1】:

    当 Cloudfront 出于某种原因向您的服务器(源)询问文件时,您的服务器没有以 200 响应。您应该检查您的日志并重写规则以确定 Cloudfront 接收 301 响应的原因。

    我能想到的一个解释是,如果你有一个重定向到 www.* 等的规则。

    【讨论】:

    • 这个 www.* 重定向是我的问题的根源。非常感谢您的建议。
    【解决方案2】:

    我遇到了类似的问题,原因与 Gordon Knoppe 的回答没有什么不同。我有一个包含大量缩略图的页面,这些缩略图应该由我的 CloudFront CDN 提供。奇怪的是 3 个中有 2 个没有,而那些没有显示“301 - 永久重定向”的 Fiddler。

    原来图像的 URL 路径可能包含大写字母(有些有,有些没有),并且对于那些有的,它们与确保所有 URL 都以小写形式处理的重写规则相冲突。最终结果是 CloudFront 请求仅缓存在 200 个回复上,而不是在路径不是小写时返回的 301 上。将 URL 路径修复为全部小写后,一切正常。

    【讨论】:

      【解决方案3】:

      威尔布德尔

      我已经用 Amazon cloudfront、S3 和 amazon OnePica Extension 实现了精确的东西。

      所以 OnePica 已经为 S3 和 Cloudfront 处理了产品图片。但是对于 Css & Js,我们已经自定义了我们的代码。我们自定义Mage_Core_Helper_Data::mergeFiles() & Mage_Core_Model_Design_Package::getMergedJsUrl($files)Mage_Core_Model_Design_Package::getMergedCssUrl($files)方法

      当然,您需要将媒体 URL 更改为云端 URL。如果您希望对您的文件进行 Gzip 压缩,请提个建议。然后你必须压缩你的 CSS & JS 文件,然后上传到 S3 服务器。 希望对你有帮助

      【讨论】:

        猜你喜欢
        • 2016-05-06
        • 2021-05-04
        • 2014-07-09
        • 2012-10-23
        • 2014-03-28
        • 2014-10-06
        • 2014-02-22
        • 1970-01-01
        • 2021-07-22
        相关资源
        最近更新 更多