我在 Chrome 上遇到了完全相同的提示。
就我的情况而言,有几处配置设置错误:有些是 Discourse 的设置,有些是托管服务器的配置。我将我的检查清单贴在这里供你参考:
- 检查
/var/discourse/containers/app.yml
确保你要么允许 HTTPS/HTTP(开放 443 端口,取消注释与 SSL 相关的模板配置以及 Let’s Encrypt 相关配置),要么仅允许 HTTP 请求(禁止 443 端口,注释掉与 SSL 相关的模板配置以及 Let’s Encrypt 相关配置)。
如果对 app.yml 进行了任何更改,请运行 ./launcher rebuild app 以激活更新后的配置。
- 运行
./launcher logs app。
如果你像我一样频繁无法成功重建一个功能正常的 Discourse 服务器,可能同时请求了过多的 Let’s Encrypt 凭证并超出了其限制。
此时运行 ./launcher logs app 会打印出一个包含 429 错误的 json 响应。
- 检查你的 ECS 服务器实例的“安全组”设置
在我的案例中,“安全组”本质上是一组已授权开放的端口(例如 80 HTTP、443 HTTPS),用于控制你的服务器与外部网络之间的通信。
请确保开放托管 Discourse 所需的端口。
- 检查防火墙设置
在我的案例中,第 3 步并未为我开放所需端口,问题出在我的防火墙设置上。
奇怪的是,我从未为服务器配置过防火墙,但在执行以下配置后,这些端口确实被开放了:
apt install firewall-cmd
firewall-cmd --permanent --add-port=20-21/tcp(…以及其他端口)
firewall-cmd --reload
你可以使用一些在线服务检查你的域名已开放端口的状态。