多站点系统中只有一个站点出现登录失败

我有一个 Discourse 主站点,添加了 6 个子站点,每个子站点都有独特的域名和数据库。

最初,我复制了主站点的数据库以保持一致性,这与其他 5 个子站点运行良好。

只有一个站点出现问题,无论我如何尝试登录:

  • 如果通过 OIDC 登录,我会收到“抱歉,授权超时,或者您已切换浏览器。请重试。”错误,屏幕一片空白。
  • 如果通过用户名/密码登录,我会收到“未知错误”消息,显示在用户名/密码框上方。

我甚至尝试将工作站点的数据库复制到新站点,但它仍然无法正常工作。

以下是多站点配置,以供参考。

         oneexample:
           adapter: postgresql
           database: oneexample
           username: adminexample
           password: pwexample
           host: 192.168.1.1
           port: 5432
           pool: 25
           timeout: 5000
           db_id: 5
           host_names:
             - 1example.com

我选择“oneexample”和“1example”是因为域名以数字开头。我目前唯一的怀疑是数字导致了问题,因为将数据库复制到一个域名不带数字的工作站点可以正常工作。

有人可能会说我应该选择一个不同的域名,但这一个域名价格不菲,我希望它能正常工作。

我已清除浏览器 cookie,从数据库中删除了登录日志,并且还尝试使用具有相同数据库的其他域名。所有这些都运行正常。

我心中有一个尚未测试的潜在解决方案是更改域名为一个子域名,只是为了替换域名开头的数字,例如:

但是,这又失去了为这个高级域名支付高额费用的意义。

我是否看错了地方?是否有可行的解决方案?

我也尝试了 host_names: xxx.1example.com,但结果是相同的错误。
使用相同的数据库,我已成功尝试了许多不带数字的 URL。这似乎与域名问题有关,但我没有其他线索。

从我的 Nginx 的 location 块中,

proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header X-Forwarded-Proto $scheme;

我删除了最后一行,因为它的功能与前两行重复了。不知何故,Discourse 似乎认为登录来自 http,而不是 http。

我还向 app.yml 添加了以下行,以确保 Discourse 尝试通过 https 登录,最终奏效。

  • DISCOURSE_FORCE_HTTPS: true

那么主要问题是,它对另外五个子站点是如何运作的?

你难倒我了

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