如何在没有 SSL 的情况下安装 Discourse?

是否可以在不使用 HTTPS 的情况下进行安装,然后从托管服务自行实施 SSL?

1 个赞

是的,但这意味着不能运行 ./discourse-setup 脚本,而需要手动编辑 app.yml 文件。除非你熟悉相关配置并愿意自行调整,否则不建议采用这种设置方式。

5 个赞

我可以编辑文件并使用 / launcher rebuild 吗?

您能解释一下为什么免费集成 SSL 对您来说不是一个选项吗?

5 个赞

我在 CDN 配置上遇到了问题(例如,论坛加载时没有样式,就像禁用了 JavaScript 一样),我更喜欢为此集成自己的 SSL。长期以来,我一直想知道如何在不先启用 HTTPS 的情况下安装论坛?

1 个赞

难道你要为此责怪内置的 SSL 封装吗?

这与证书毫无关系。

1 个赞

难道要我蒙着眼睛解决问题吗?请原谅,我还在初学阶段,不犯错就很难学会。我提出的问题,得到的回答往往又是一个问题。

1 个赞

不,你应该通过概述问题来寻求帮助。这比提出关于猜测性解决方案的模糊问题有效得多。

如果你想分享更多信息,我们可以相对快速地找到问题的根源。

6 个赞

正在尝试通过 CloudFront 设置 CDN。

不幸的是,只有将“源站协议策略”设置为“仅 HTTP”时,页面才能正常显示。当我访问 sitenumbers.cloudfront.net 时,页面可以完整显示(但也会重定向到主域名)。// 无论如何,在这种情况下,网站加载时间甚至比不使用 CDN 时更长,因此完全没有意义。

当我将 CloudFront 的“源站协议策略”设置为“匹配查看器”时,页面仅显示内容,没有样式,就像禁用了 JavaScript 一样。// 但网站加载速度非常快

我不确定问题出在哪里。因此,我想尝试在没有 SSL 的情况下使用论坛。

1 个赞

./discourse-setup 在不提供 Let’s Encrypt 邮箱地址的情况下,将提供 HTTP 页面。无需手动编辑。

确实如此。

如果你想要的是 CDN,请参阅 https://meta.discourse.org/t/enable-a-cdn-for-your-discourse/14857。虽然如上所述可以禁用 HTTP,但这几乎肯定无法解决你的问题。

4 个赞

谢谢。我尝试编辑 app.yml 并执行 rebuild,但页面未能启动。因此我理解在这种情况下需要重新安装应用吗?

discourse-setup 和 rebuild 有什么区别?我理解这不会对网站造成任何更改?

1 个赞

那是因为你操作有误。问题很可能出在空格上。

如果你想要的是 CDN,最好的办法可能是:

cd /var/discourse
docker stop app
docker rm app
rm containers/app.yml
./discourse-setup

然后按照我之前提供的链接中的说明操作。

祝你好运。

7 个赞

感谢这份指南,我在使用时遇到了 CloudFront 的问题。您自己写道:

CloudFlare CDN 与 Discourse 历史上一直存在兼容性问题,因此我们目前不建议使用 CloudFlare CDN。

但我注意到您的网站已正确配置了 CloudFront。所以它应该是可以正常工作的,对吗?

1 个赞

@pfaffman 哭泣 困倦

使用您喜欢的任何 CDN。即使将 Cloudflare 配置为 CDN 而非盲目地将其置于整个网站之前,也能正常工作。

1 个赞

8 篇帖子已拆分至新主题:Discourse 设置脚本的 Let’s Encrypt 主机名验证

那我该怎么在不使用 HTTPS、仅使用 HTTP 的情况下安装(强制生效的安装)?

你需要注释掉顶部附近的两行,这两行用于启用 Let’s Encrypt 和 SSL。

就是这两行:

  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

但同样,我认为这样做并不能解决任何问题。

5 个赞

嗯,事情没那么简单。你能告诉我你的论坛是如何配置 CloudFront CDN 的吗?