我正在尝试理解CDN和缓存,但我找不到答案。
如何让amazon cdn缓存来自原始服务器缓存图像的图像?有没有办法测试它?
我将CDN源映射到我的服务器,所以当它没有找到
时它代替
你可以在Firebug中看到,所有magento缓存的元素都会永久移动301,而静态文件会得到OK 200响应。此外,如果我输入了前端URL,它会自动更改为我的mahlo-cached元素的URL,但仍然是静态URL的云端URL。
如果我稍后回去,甚至整整一天,它都不会使用CDN来源,这让我相信它不会在亚马逊上缓存我的magento缓存的css / js / images。
如果我关闭缓存& js / css优化,然后它向cloudfront cdn发出过量的http请求。
答案 0 :(得分:3)
当Cloudfront因某种原因询问您的服务器(原点)时,您的服务器没有回复200.您应该检查日志并重写规则以确定Cloudfront收到301响应的原因。
我能想到的一个解释是,如果你有一个重定向到www。*等的规则。
答案 1 :(得分:1)
我遇到了类似的问题,原因与Gordon Knoppe的答案没有什么不同。我有一个页面,其中包含大量缩略图,本应由我的CloudFront CDN提供。奇怪的事情是3分中有2分没有,而那些没有的东西与Fiddler一起显示“301 - Permanent Redirected”。
结果显示图像的URL路径可能包含大写字母(有些已经完成,有些没有),对于那些确实与重写规则冲突的人,确保所有URL都被处理为小写。最终结果是CloudFront请求仅在200个回复中缓存,而在路径不是小写时返回301。一旦URL路径被修复为全部小写,一切正常。
答案 2 :(得分:0)
willboudle
我已经使用亚马逊云端,S3和亚马逊OnePica Extension实现了精确的功能。
因此,OnePica已经负责S3和Cloudfront的产品图像。但对于Css&我们已经定制了我们的代码。我们自定义Mage_Core_Helper_Data::mergeFiles()
& Mage_Core_Model_Design_Package::getMergedJsUrl($files)
和Mage_Core_Model_Design_Package::getMergedCssUrl($files)
方法
当然,您需要将媒体URL更改为云端URL。如果你想要你的文件应该被Gzip压缩,请提一句建议。然后你必须gzip你的CSS&然后将JS文件上传到S3服务器。 希望这会对你有所帮助