运行多用户 FreshRSS 实例的一些经验

运行多用户 FreshRSS 实例的一些经验

💡 原文中文,约1900字,阅读约需5分钟。
📝

内容提要

本文介绍了运行多用户 FreshRSS 实例的经验,包括常规优化、使用较新的 PHP 版本和开启 WebSub。同时提到了升级 FreshRSS 时需要清理缓存、修改默认订阅源和配置、并行刷新订阅源以及使用 AutoTTL 插件自适应调整更新频率。管理插件可以使用 FreshRSS 插件包管理器,不推荐使用自带的导出工具进行备份。经过优化后,可以容纳至少1k用户。

🔎

延伸解读

升级前清理缓存,避免超时

FreshRSS 升级时会自动备份 ./data 目录,但多用户实例的 ./data/cache 下可能积累数万缓存文件,导致备份耗时过长,进而引发 PHP 超时。建议在升级前手动清理缓存文件,并确保备份任务排除 ./data/cache 和 ./data.bak,以提升升级效率。

并行刷新与 AutoTTL 优化

FreshRSS 1.22.0 后引入的进程互斥锁会拖慢订阅源刷新效率。通过修改 actualize_script.php 中的互斥锁参数,可以并行运行多个刷新进程,显著提升速度。此外,启用 AutoTTL 插件能根据每个 feed 的实际更新间隔自适应调整刷新频率,但需将其改为系统级插件。

插件管理与备份注意事项

手动管理 FreshRSS 插件较为繁琐,可借助第三方插件包管理器简化安装和更新。备份时,不推荐使用 FreshRSS 自带的导出工具,因为它会重排序 feed_id,且对于 MySQL/PostgreSQL 数据库,导出的 sqlite dump 会解压文章内容,导致文件体积过大。

❓

Q&A

如何优化多用户 FreshRSS 实例的性能?

可以通过常规优化、使用较新 PHP 版本和开启 WebSub 来提升性能。

FreshRSS 升级时需要注意什么?

升级时需清理缓存,以避免 PHP 超时,并确保备份文件不包含缓存。

如何设置新用户的默认订阅源和配置?

可以通过修改 ./opml.default.xml 和创建 ./data/config-user.custom.php 文件来设置。

并行刷新订阅源的优化方法是什么?

可以通过修改进程互斥锁设置和增加刷新进程数量来优化并行刷新。

为什么不推荐使用 FreshRSS 自带的导出工具进行备份?

因为导出工具会重排序 feed_id,并且导出的内容会解压,导致文件体积增大。

经过优化后,FreshRSS 实例可以支持多少用户?

经过优化后,系统估计至少可以容纳 1k 用户。

🏷️

标签

➡️

继续阅读