使用 imgproxy 处理 ActiveStorage 图片变换

使用 imgproxy 处理 ActiveStorage 图片变换

💡 原文中文,约2400字,阅读约需6分钟。
📝

内容提要

最近将Geeknote的图片处理换到了imgproxy,imgproxy是一个开源的图片处理引擎,可以替代ActiveStorage的图片处理。imgproxy的优势是将图片处理负载移出Rails进程,方便设置CDN,容易控制成本。配置imgproxy需要安装gem并在application.rb中添加配置。部署imgproxy可以使用fly.io,部署成功后添加环境变量并重启应用。imgproxy本身只处理图片,需要在其前面加CDN来处理缓存。以上是在生产环境使用imgproxy替代ActiveStorage图片处理的全过程。

🎯

关键要点

  • Geeknote的图片处理已更换为imgproxy,记录过程。
  • imgproxy是开源的图片处理引擎,可替代ActiveStorage。
  • 自部署imgproxy的优势包括:将图片处理负载移出Rails进程、方便设置CDN、容易控制成本。
  • ActiveStorage默认返回重定向地址,imgproxy返回代理地址,处理图片的责任转移给imgproxy。
  • 在生产环境配置imgproxy需要使用S3兼容服务进行测试。
  • 安装imgproxy-rails需要在Gemfile中添加gem并在application.rb中配置。
  • 设置环境变量IMGPROXY_ENDPOINT等以启用imgproxy功能。
  • 部署imgproxy可使用fly.io,创建应用并配置相关参数。
  • 部署成功后需添加环境变量并重启应用以正常返回图片。
  • imgproxy本身不处理缓存,需在其前面加CDN以避免重复生成图片。
  • 总结:在生产环境中用imgproxy替代ActiveStorage图片处理的全过程。
➡️

继续阅读