将 CDN 与图像调整器脚本一起使用


Using CDN with Image Resizer Script

我正在使用图像调整器在我的网站中输出图像。在当前情况下是否可以使用 CDN?

图像

调整器采用图像的文件路径并输出所需的图像。现在,即使我使用 CDN,图像调整器脚本也托管在我的服务器上。所以每个图像请求都通过我的服务器。使用 CDN 对我有任何好处吗?

CDN 上的缓存对象以请求 URI 为键,因此,如果应用程序未在 URL 中生成任何随机性,则应从 CDN 中受益。如果您的图片请求如下所示

/resizer/200x100/thing.jpg
# ...or...
/resizer/thing.jpg?size=200x100

然后,CDN 将缓存它以用于所有后续请求。

如果您的服务器和脚本足够快,那么我会使用您的服务器代码。这意味着如果需要添加自定义函数,可以使用脚本。如果您有任何严重的问题或想要 CDN 可能提供的更多选项,请切换。

简短回答:否。如果您的服务器即时调整图像大小,那么它仍然是一个瓶颈,并且 CDN 的好处基本上已经丢失。

您可能熟悉的三种解决方案:

  1. 让图像调整器脚本在图像上传时运行一次,并创建所有必要的图像大小,然后以逻辑方式将所有内容存储在 CDN 上。(合理的解决方案。缺点:非常僵化,添加新的图像尺寸需要大量的工作)。

  2. 根据请求运行图像调整器脚本(即:调整单个图像的大小并上传到 CDN),但前提是 CDN 上尚不存在该图像。(您可以将创建的图像列表存储在数据库中,或者,如果可能的话,最好使用对象符号默认图像技术)(很酷的解决方案。缺点:旧浏览器不喜欢对象标签,非标准代码,尽管有效)。

  3. 切换 CDN,使用更成熟的 CDN 服务,允许您通过 API 操作媒体文件。 例如:http://cloudinary.com/(一帆风顺的解决方案。缺点:不像那里的非智能CDN那么便宜,但在大多数情况下,你几乎感觉不到它,它会为你节省大量的编码)。

希望这有帮助,我很想听听你选择什么解决方案。