论坛变得一团糟——可能是在升级后

长文……
几天前,我将论坛迁移到了新服务器。迁移很顺利,用户可以正常登录和使用。然而,在登录用户使用 2-3 小时后,他们发现无法使用论坛了。我最初没有注意到这个问题,但在 10-15 分钟内,我发现我的账户也受到了影响。我看到的是论坛页面在页面上反复输出,但内容丢失……所以是标题……一点文字……再次是标题……再次是一点文字……再次是标题……等等。

我假设迁移过程中出了什么问题,因为迁移后帖子很少,而且我仍然可以使用旧服务器,所以我只是在旧服务器上启动了论坛,并将 DNS 指向了它。这样我就可以花时间弄清楚出了什么问题,然后再次尝试迁移。

然后今天,我的“旧”论坛提示我需要进行关键更新。我应用了它们,事情似乎都还可以。然而,一两个小时后,旧论坛开始出现与我迁移的论坛相同的奇怪显示问题。

所以现在我怀疑是升级后出了问题。迁移的服务器在构建时会获取最新的代码,因此它会立即出现问题。旧论坛今天才收到更新,并在不久后开始“失控”。

到目前为止,我尝试过但未成功:

  1. ./launcher rebuild app
  2. app.yml 中注释掉所有插件并运行 ./launcher rebuild app
  3. 在安全模式下运行并开启所有选项
  4. 清除浏览器缓存
  5. 尝试了不同的浏览器(Chrome、Edge、Firefox 和 Opera)

对于登录用户来说,问题似乎是渐进的。我今天用一个测试账户登录,没有出现问题,但当我尝试在迁移的服务器上使用该测试账户时,该账户最终也出现了相同的问题。不幸的是,我现在无法尝试更多操作,因为我的管理员账户出现了问题,无法使用。

我有一个升级前的备份,但我怀疑这不会有帮助。如果我重建论坛,它将获取最新的更新,所以如果我将内容恢复到其中,它可能会在几个小时内再次“失控”。

服务器设置:
Debian 12 运行 Docker Swarm v26.1.4。可用磁盘空间 120GB。RAM 64GB,目前仅使用约 20GB。到服务器的连接通过 Cloudflare Tunnels。旧服务器的可用磁盘空间和内存较少,但两者均未满。

我正在思考现在还能做些什么来尝试让事情恢复正常。我愿意接受建议!

自动最小化也许?

6 个赞

谢谢你的建议。

它已开启。我不确定为什么,因为我通常不会开启它。我已经将其关闭(JS、CSS 和 HTML),但仍然看到页面在屏幕上重复滚动。

附注:我注意到 Cloudflare 自动压缩功能将于八月初停用。

您是否已按照说明清除 Cloudflare 缓存?

1 个赞

是的。在关闭自动最小化后,Cloudflare 缓存(以及浏览器缓存)已被清除。

1 个赞

在这种情况下,我建议您在出现问题时检查浏览器开发者控制台,看看是否有任何错误。

在修复了 Cloudflare 问题后,您也可以再次尝试安全模式。

1 个赞

安全模式现在可以正常工作了。JS 控制台中除了时区弃用警告外,没有其他错误。我将切换回默认主题并禁用所有主题组件,看看在安全模式之外是否能正常工作,然后逐一重新启用它们,看看是否能缩小范围。

我需要一点时间才能确认情况如何,因为“爸爸的出租车”要出发去旅行了!

1 个赞

自动最小化似乎是罪魁祸首。我不知道它是如何/何时被启用的。我并非有意为之,因为过去曾因其他系统出现类似问题而吃过亏。我怀疑 Cloudflare 最近(我想)添加了一个按钮来激活一组基本设置,以改善浏览器与网站的交互方式。我查看了建议的更改,并启用了那些看起来合理且安全的更改。我再次查看了选项,没有发现任何关于自动最小化的引用,但也许它是作为“基本设置”的一部分被启用的?

Cloudflare 缓存也解释了为什么在我应用 Discourse 更新数小时后,这个问题突然出现。我的 Cloudflare 浏览器 TTL 缓存设置为 4 小时。更新后我没有清除 Cloudflare 缓存,所以在之后的几个小时里,人们仍然获得数周以来每次 Discourse 更新后一直获得的老的“好”文件。然后,在 4 小时后,Cloudflare 开始更新自己的缓存,看到了新的 Discourse 文件,并在将其添加到缓存之前对其进行了最小化。然后,当浏览器请求更新自己的缓存时,它们获得了损坏的文件。由于浏览器在不同时间更新自己的缓存,每个用户都会在不同时间看到问题出现。

经验教训:

  1. 在应用 Discourse 更新后清除 Cloudflare 缓存。现在看来很明显,但我以前从未想过!
  2. 不要启用自动最小化。我一定这样做了,但我不知道如何/何时。我早就知道这并非易事,因为我曾经用它搞砸过一个 Wordpress 网站,但这次的经历再次印证了这一点。

非常感谢 @JammyDodger@david 帮助我解决了这个问题 :smiley:

1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.