两个话语 - 在容器中 - 会相互干扰吗?

大家好。

我看到了一些——希望不只是我一个人觉得——非常奇怪的现象。
我有两个 Discourse 容器,它们似乎已成功部署并正常工作。
这两个站点——至少在浏览器中——似乎会相互干扰。
我登录到 A 站点,会看到 B 站点的一些内容,比如分类。我刷新几次,浏览器似乎就稳定了。
我从 A 站点登出——它设置为“不允许匿名访问”——或者刷新它,然后另一个 B 站点也会出现同样的情况,好像需要登录才能查看,而实际上并非如此!
甚至更糟的是,当我从两个站点都登出后,切换到 A 站点的标签页——它没有“匿名”访问权限——刷新,然后回到 B 站点的标签页,现在 B 站点也默认需要登录了,而且 A 站点的 Logo 和站点标题也“泄露”到了 B 站点。
这种情况发生在同一个浏览器——Brave——中,如果我换到另一个浏览器,比如 Chromium,那么 B 站点就是 B 站点。如果我这样做,然后立即在 Brave 浏览器中刷新同一个 B 站点,那么……它在那里也“修复”了,但是……
事情并没有就此结束——如果我在 Brave 中刷新几次,那么稍后 Chromium 也会从 A 站点获取“需要登录”的信息,并显示在 B 站点上。
天哪……

这肯定不是 Discourse 本身真正存在的问题,而是我哪里做错了或者遗漏了什么。

两个 Discourse 容器都位于 Nginx 代理之后。

非常感谢任何建议。

请分享每个站点的 app.yml 文件。

1 个赞

他们共享 Redis 吗?

啊……是的,这两个 discourse-containers 都连接到同一个容器外的 Redis。

是否有关于这种部署/设置(如果可行的话)的文档,其中包含多个 Discourse 连接到单个 Redis 的指南?

他们每个人都需要自己的 Redis。

我不记得或不完全理解细节,但 Discourse 使用了一个需要每个站点都有自己的 Redis 的功能。

一个简单的(而且便宜的)解决方案是将 Redis 模板包含在你的 web_only 容器中。

1 个赞