Flyimg:自托管图片实时优化服务

18次阅读
没有评论
Flyimg 免费下载|自托管图片实时优化服务
获取下载链
微信关注「软件教程管家」公众号,回复 flyimg
官方渠道:GitHub 仓库

网站图片太大拖慢加载,又不想把原图交给第三方压缩服务?Flyimg 是一个基于 Docker 的自托管图片实时优化服务:图片地址后面拼上尺寸、裁剪、格式参数,请求时实时转换并缓存,下次直接命中缓存返回。本文讲清它的版本怎么选、Docker 部署的 4 个关键卡点、parameters.yml 里 5 个必改项,以及它和 imgproxy、Thumbor 的分工边界,帮你一次选对、用稳。

基本信息

项目 Flyimg
类型 自托管图片实时处理与分发服务
技术栈 PHP + nginx + PHP-FPM + ImageMagick(容器内)
部署方式 Docker(官方提供镜像;README 称已在 Mac、Windows、Ubuntu 测试)
输出格式 AVIF、WebP、MozJPEG、PNG、GIF;JPEG XL 需 ImageMagick 启用相应能力
核心能力 URL 参数描述尺寸/裁剪/压缩;o_auto 按 Accept 头协商格式;处理结果缓存
许可证 AGPL-3.0(商用前先评估传染性条款)
配置入口 parameters.yml(可挂载自定义)

版本选择:生产环境别追 latest

版本 特点 适合谁
GitHub Release 标签版 版本号可追溯,可 pin 镜像 digest,回滚有据 生产环境首选
Docker Hub latest 永远最新,但行为可能随更新变化 测试/体验环境
main 分支源码构建 最新功能,未经发布流程 要二次开发的团队

明确推荐:生产用 Release 标签版并 pin 住镜像 digest;latest 只放测试环境。结论先行——省掉半夜被上游更新炸醒的风险。

安装关键卡点(4 个)

  1. 先拷出 parameters.yml 再挂载:直接用空目录做卷挂载会遮挡容器内默认配置,导致起服失败。正确姿势是先 docker cp 把默认 parameters.yml 拷出来,改完再挂载回去。
  2. 宿主机 8080 端口冲突:README 默认映射 8080 端口,本机已有服务占用会起服失败。改 -p 8081:80 换端口,或停掉占用进程。
  3. 源码构建别漏 composer install:本地开发方式下依赖不在镜像里,需要在容器内执行 composer install,漏了这步页面直接 500。
  4. 先验证 AVIF 真出得来:AVIF/JXL 输出取决于镜像构建时的 ImageMagick delegate。拉完镜像先用 ?o_auto=1 打一张图,看响应头是不是 image/avif,别等上线才发现。

装完必改的 5 个设置(parameters.yml)

  1. 图片源白名单:把允许抓取的域名锁成自家站点。默认放开等于把你的服务器变成免费公图床,被刷流量时哭都来不及。
  2. 缓存目录挂到宿主机卷:处理后的图片默认写容器内,容器一重建缓存全丢,还得多花 CPU 重新计算。挂卷后重启无忧。
  3. 默认输出质量:默认质量偏高,Web 场景建议设到 80–85,体积直降三四成,肉眼几乎看不出差别。
  4. o_auto 格式协商:打开后按请求的 Accept 头自动选择 AVIF/WebP,老浏览器自动回退,不用为不同浏览器写两套图片地址。
  5. 单图尺寸与内存上限:限制最大输入分辨率和 ImageMagick 内存占用,防一张超大图把容器 OOM 拖死。

注意事项与常见问题

  • 公网暴露前先做访问控制:README 没有给出完整的鉴权方案,URL 签名或前置网关二选一,别把图片处理入口裸奔在公网。
  • 远程图片抓取失败:先看源站防盗链(Referer/UA 校验)和抓取超时;内网图床要确认容器网络是否可达。
  • 缓存不更新:换了原图但 URL 参数没变,会一直命中旧缓存。清缓存目录或给参数加版本号解决。
  • 容器重启后配置丢了:parameters.yml 没做卷挂载就是这个下场,检查 compose 文件的 volumes 段。
  • AGPL-3.0 许可证:纯自用不分发问题不大;一旦把修改过的版本作为网络服务提供,传染性条款先生效,建议先让法务看一遍再上线。

适合谁、不适合谁

Flyimg imgproxy Thumbor
实现语言 PHP,易读易魔改 Go,高性能 Python,插件生态多
上手成本 低,一个容器 低 中,需配插件
性能取向 够用 最高 中

一句话判断:适合已有 Docker 运维能力、想自建 Cloudinary-like 图片入口的团队,尤其 PHP 栈方便二次魔改的;不适合追求极致性能的(选 imgproxy)、不想碰服务器要开箱即用 CDN 的(直接买 Cloudinary/imgix)、需要细粒度权限与多存储后端的(先读源码再定)。

开源地址

前往 GitHub 仓库

GitHub 国内访问较慢,如打不开可多刷新几次

推广Flyimg 免费下载|自托管图片实时优化服务

关注「软件教程管家」

回复软件名即取即下:网盘下载链接 + 提取码,一步直达,不用再跳转。

版权与使用提示

本站资源仅供个人学习交流,请勿用于商业用途。软件与资料版权归原作者所有;如有侵权,请通过公众号「软件教程管家」联系我们,我们将在 24 小时内下架处理。查看免责声明 ›

上次编辑至今:11小时 · 内容还比较新鲜

公告

契机库网站正式上线!

了解更多
正文完
 0
评论(没有评论)