好的。听起来正是我想要的。谢谢。
我该如何进入这里??我的意思是,我该如何找到那一部分??有两组相同的行!应该编辑或更改哪一组??
从这里编辑:
算了,哥们……感谢你的时间!我自己解决了 ![]()
顺便说一句,你的方法不太奏效
您还需要至少在 discourse 3 中设置环境变量。
打开您的 app.yml
查找环境变量并填写。
谢谢你提供这个信息,
我首先设置了一个独立的 Discourse,它在 HTTP 上显示了正确的注册页面。然后我安装了 Nginx,但没有证书,因为我在测试实验室中使用它,没有 Let’s Encrypt 访问权限。我现在可以看到注册页面,但没有样式。在主机上的 Nginx 日志中,我看到了 404 错误。有什么解决办法吗?
谢谢
已解决:我必须注释掉 try_files $uri $uri/ =404;,这是 Debian 11 和 Nginx 18.0-6 下的默认设置。
错误。设置此项后,Chrome 浏览器显示错误:
混合内容:“<URL>”处的页面通过 HTTPS 加载,但请求了不安全的字体“<URL>”。此请求已被阻止;内容必须通过 HTTPS 提供。
您是否开启了 force_https?
是的,我在 certbot --nginx 步骤中完成了。我已经尝试了很多次,但都没有成功。
您需要设置 discourse 设置 force_https,而不是在 nginx 中设置。最好通过环境变量设置,但如果可以进入 admin/settings,也可以在 ux 中设置。
bind() 到 unix:/shared/nginx.http.sock 失败 (95:不支持的操作)
所以我很困惑,我无法运行 /discourse-setup,因为我是在现有的 Web 服务器上安装它,但我应该编辑一个 .yml 文件,而这个文件在我运行 /discourse-setup 之前不会被创建。所以 app.yml 不存在,那我该如何编辑它?
从 samples 目录复制 standalone.yml。
我看了这个帖子二十遍,才发现那部分最后一行写着“已添加”。我感觉自己像个白痴。@riking,你能不能把介绍修改成这样:
我已经进行了建议的更改(并删除了关于这是否是您信任级别无法编辑的维基的帖子——对此我很抱歉)。这是一个细微的更改,但我认为它可能会帮助到其他人。谢谢。
我的设置略有不同:我的反向代理不在宿主机上运行,而是在一个单独的 Docker 容器中运行。
我目前正在使用 Docker 网络将两者连接起来,而不是通过 Unix 套接字暴露 Discourse。
运行正常,但有一个明显的缺点:速率限制只能看到反向代理的 IP,因此会错误地限制反向代理的速率……
我看到几个选项:
- 删除速率限制模板。(不是一个好选择……)
- 创建我自己的模板,将 Nginx 配置为
set_real_ip_from反向代理。 - 调整速率限制模板,使用
$http_x_forwarded_for而不是$binary_remote_addr。 - 在反向代理容器中公开 Unix 套接字。(不知道是否可能,以及如何实现。)
理想情况下,我不想创建自己的模板或更改现有模板,而是尽可能接近地使用默认设置,即选项 4。
有什么想法吗?优缺点?想法?
我明白您很久以前就遇到了这个问题,但我今晚刚遇到,并找到了一个对我有用的解决方案。
我的问题出在我的注册商充当了代理,并且将 SSL/TLS 设置为“灵活”。将其切换到“完整”后,问题立即得到解决——我只希望在重建大约 20 次之前就想到这一点。
双容器安装指的是什么?谢谢。
容器是 Docker 的一个概念,它是一个有效的独立处理单元,可以拥有与操作系统隔离的独立配置。
通常,Discourse 及其所有依赖项(在标准安装中)运行在单个容器中。
还有更高级的安装方式,其中其他服务可以在另一个容器中运行,甚至可以将 Discourse 分成两个容器(一个用于数据库,一个用于 Web)——即“双容器安装”。
注意:Discourse 使用自己的定制启动器,这与标准 Docker 使用的启动器不完全相同。
我有一个问题,如果反向代理在单独的 Docker 容器中,它仍然可以使用 Unix 套接字吗?


