您可以直接在此处访问我的分步教程……
在我(Hetzner)的专用服务器上,我安装了一个全新的 Discourse 实例(这是当时服务器上唯一的东西)。
现在我想使用 CloudPanel 作为反向代理,这样我也可以使用该服务器为我的某些客户托管 Ghost 博客和 Wordpress 网站。
通过阅读本教程,以及研究下面的其他帖子,这似乎是可能的。
但我正在努力学习反向代理的知识。
我可以轻松地使用 CloudPanel 安装和管理我的网站。
但是,我不清楚如何正确地操作才能让 CloudPanel 与 Discourse 协同工作。
我想在此帖中记录下这个过程。
有人能指导我完成这个过程吗?
pfaffman
(Jay Pfaffman)
2
首先,请按照以下指南之一将 Discourse 移动到另一个端口,并删除 SSL 和 Let’s Encrypt 模板,然后重建。之后,请将您的反向代理指向该端口。
3 个赞
如果我先安装 CloudPanel,然后在界面中创建反向代理……
……以及/或者在 Vhost 编辑器中……
……然后我能安装 Discourse 吗?
或者,有必要或以某种方式更可取的是先安装 Discourse?
我想为其他像我一样简单的用户提供最简单/最直观的方法的步骤 
Jagster
(Jakke Lehtonen)
4
没关系。只要
- Discourse 不使用 80/443 端口,因为冲突会使您的反向代理崩溃
- Discourse 不使用 SSL,但将 80 端口暴露给反向代理使用的后端端口
所以 没关系 的意思是 Discourse 必须在您启动反向代理之前设置为后端,并且在那时是无法访问的。
1 个赞
pfaffman
(Jay Pfaffman)
5
这不是为简单的人准备的。您必须同时了解反向代理的工作原理以及如何手动配置 discourse。这并不简单,也不直观。
对于新手来说,支持标准安装已经足够困难了。已经花费了大量时间来使这些说明对那些对系统管理一无所知的人员有效。
2 个赞
“花了很长时间才让那些对系统管理一无所知的人也能按照说明操作。”
@pfaffman 我希望将来能为您节省这些时间!
1 个赞
containers/app.yml 是安装程序创建的文件吗?(我在仓库中找不到它。)
我已经编辑了 standalone.yml 文件并将其重命名为 app.yml
如果我将该文件放入 containers/ 然后运行 ./discourse-setup,是否应该可行?
(假设我已经正确配置了 app.yml 中的设置)
Stephen
(Stephen)
8
是的。
作为 Discourse 的新手,正确的方法如下:
- 暂时禁用您的反向代理。
- 在禁用 SSL/Let’s Encrypt 的情况下安装 Discourse
- 在 :80 上验证安装是否正常工作
- 将 Discourse 端口更改为 81 或其他非标准端口,或者最好使用套接字。
- 重新启动反向代理,配置针对 Discourse 安装(包括 https 封装)
- 启用 force_https
如果您不在反向代理的情况下安装 Discourse,那么可能出错的地方太多,难以进行实际故障排除。
1 个赞
pfaffman
(Jay Pfaffman)
9
您不能使用 discourse-setup 进行设置。如果已编辑,请运行
./launcher rebuild app
2 个赞
奇迹中的奇迹——我们成功了!感谢您的所有帮助!我将在上面的主题帖中记录该过程。
2 个赞
好的,我卡在一个(我认为是小)问题上……
要创建第二个 Discourse 实例,我需要创建并编辑第二个 Discourse 的 app2.yml 和 server_name.conf,更改 DISCOURSE_HOSTNAME 和 server_name。
但是……然后我该如何构建 app2 呢?我尝试了:
service nginx restart
./launcher stop app
./launcher rebuild app2
以及
./discourse-setup (我安装第一个实例时使用了 ./discourse setup,然后回去编辑了 app.yml,这在第一个实例上是有效的。)
这个过程确实得到了第二个域名的 Discourse,但它似乎正在从第一个实例获取数据。
我有些不明白。构建第二个域名的第二个站点的正确方法是什么?
2 个赞
Stephen
(Stephen)
12
您的反向代理是否配置为监听第二个域并将流量路由到不同的端口?
2 个赞
pfaffman
(Jay Pfaffman)
13
您需要更改它所说的 /var/discourse/standalone 的目录,将其更改为其他内容(例如 standalone2?)。
您可能想使用双容器设置,这样您就只运行一个 postgres 实例(我认为 使用 Docker 进行多站点配置 中有一些提示),但如果您有大量内存,您可能不在乎。
1 个赞
哇。我一个人永远也弄不明白。你是我今天的英雄。
我在这里为(一位客户)构建一个通用的 Discourse 发布系统原型,面向创作者类型,集成 Ghost 和 Discourse。
我是一名前端开发人员,现在需要全面学习系统管理。
所以我需要同时构建多站点和独立容器。
这是我的服务器设置:
-
Hetzner 上的专用服务器(6 个 CPU 核心,64 GB RAM 和 2x512GB NVMe)
-
Contabo 上的 VPS(8 个 CPU 核心,30 GB RAM 和 200 GB NVMe)
1 个赞
Canapin
(Coin-coin le Canapin)
16
我对此一无所知,但如果觉得你们的教程可靠,请随意创建一个新的 #documentation:sysadmin how-to advanced-setup 以及任何你们认为合适的标签 
(在你们的答案在一个月后被自动删除之前
)
3 个赞
好的,是的。因此,对于第二个实例,它起作用了(在 CloudPanel 中创建了一个新的站点后):
-
手动创建并编辑 app2.yml,将该文件中每个 standalone 的实例更改为 standalone2
-
同样将 standalone 更改为 standalone2 在 Vhost 文件中
-
运行 ./launcher rebuild app2
我想我还清除了所有 Cloudflare 缓存,重启了 nginx,然后还重启了服务器。
再次感谢您的帮助。
2 个赞
system
(system)
关闭
18
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.