jlgarnier
(Jean-Luc GARNIER)
2022 年9 月 16 日 08:06
21
好的!我愚蠢地应用了上面列出的页面配置,与其他 nginx 配置文件相比,我无法理解为什么代理不会监听 discourse 的 80:443 端口……
这是我期望看到的:
server {
listen 80;
server_name discourse.mydomain.com;
return 301 https://$host$request_uri; # 路由到 https
}
server {
listen 443 ssl
listen [::]:443 ssl;
server_name discourse.mydomain.com;
ssl_certificate /etc/letsencrypt/live/discourse.mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/discourse.mydomain.com/privkey.pem;
root /var/www/html;
# 如果您正在使用 PHP,请将 index.php 添加到列表中
index index.html index.htm index.nginx-debian.html;
location / {
proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:; # 使用套接字
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
}
NPM:我遵循了 @pfaffman 的建议,阅读了 https://meta.discourse.org/t/using-nginx-proxy-manager-to-manage-multiple-sites-with-discourse/206344,所以我评估了安装 NPM 的选项,但这看起来有点大材小用……
感谢大家的帮助!
Stephen
(Stephen)
2022 年9 月 16 日 09:38
22
供参考,npm 和 nginx proxy manager 是不同的东西。您混淆了术语,从而误导了试图帮助您的人。
2 个赞
pfaffman
(Jay Pfaffman)
2022 年9 月 16 日 10:33
23
那么你需要配置 nginx 将请求代理到 discourse。
我建议你为 Discourse 单独启动一个全新的虚拟机。
1 个赞
jlgarnier
(Jean-Luc GARNIER)
2022 年9 月 16 日 12:36
24
抱歉斯蒂芬,造成了您的困惑,我只是使用了文章中提到的工具名称。我明白 NPM 和 nginx(作为)代理管理器是不同的东西,这就是我使用大写字母的原因……
jlgarnier
(Jean-Luc GARNIER)
2022 年9 月 16 日 12:46
25
我正在尝试做同样的事情,我知道您无法提供支持。不过,任何提示/链接都将不胜感激!
我就是做不到,Jay:我正在帮助一位朋友部署应用程序,并且无法修改他们的服务器配置。这就是为什么我必须解决nginx问题……
顺便说一下,我的理解是:
Discourse监听端口80/443。
nginx扮演着交换机的角色,根据域名将请求分派给不同的应用程序:
我的理解对吗?
非常感谢您的帮助!
khenmu
(John Sweeney)
2022 年9 月 16 日 12:55
26
这确实有点烦人和令人困惑,但公平地说,对于 @jlgarnier 来说,这个缩写词最早是由 @tophee 或 @pfaffman 在 使用 Nginx Proxy Manager 管理多个 Discourse 站点 中用来指代 Nginx Proxy Manager 的。我不喜欢它,但如果它是“错误的”,那也不是 OP 的错。
例如,该主题有一个名为“安装 NPM”的部分,完全专注于 Nginx Proxy Manager。
RGJ
(Richard - Communiteq)
2022 年9 月 16 日 13:21
27
哇,那也骗到我了。
真烦人,那个项目竟然在八年后盗用了现有的首字母缩略词。
2 个赞
khenmu
(John Sweeney)
2022 年9 月 16 日 13:54
28
我不确定它是否已经这样了;我浏览了他们的网站,没有看到他们自己使用这个缩写。
RGJ
(Richard - Communiteq)
2022 年9 月 16 日 14:36
29
1 个赞
jlgarnier
(Jean-Luc GARNIER)
2022 年9 月 19 日 12:43
31
大家好,
我今天下午会再尝试设置一次 nginx。有人能确认一下 socket 的确切语法吗:http://unix:/var/discourse/shared/standalone/nginx.http.sock:?我想确认一下末尾的冒号不是拼写错误……
提前感谢任何帮助!
jlgarnier
(Jean-Luc GARNIER)
2022 年9 月 19 日 13:46
33
确实……我在 discourse.conf 中应用了上周五提出的修改,现在 Discourse 运行正常!至少我可以访问欢迎页面,但没有收到激活邮件,这与 Discourse 无关(我怀疑我的朋友没有创建所需的邮箱账户 )。
非常感谢你提供的帮助,希望我不会太快回到这个论坛!
2 个赞
jlgarnier
(Jean-Luc GARNIER)
2022 年9 月 20 日 11:53
34
最后,比预期的要早回来,但你们很可能会用你们的绝妙建议把我踢出去!
情况是这样的:
Discourse 已启动并运行,Docker(或 Portainer)显示容器运行正常,并且我可以访问欢迎页面 forums.mydomain.com 。
尽管技术邮箱账户已正确创建(托管提供商 = OVH),但我没有收到任何激活邮件。
我已测试从该技术账户发送邮件(使用下面的配置)= OK。
当前的邮件配置是:
DISCOURSE_SMTP_ADDRESS: ssl0.ovh.net
DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_USER_NAME: forums@mydomain.com
DISCOURSE_SMTP_PASSWORD: "Str0ngPassw0rd"
DISCOURSE_SMTP_ENABLE_START_TLS: false
DISCOURSE_SMTP_DOMAIN: mydomain.com
DISCOURSE_NOTIFICATION_EMAIL: noreply-forums@mydomain.com
我真的不知道应该从哪里开始调查,任何建议都将不胜感激!
提前感谢您的帮助!
我首先会检查 forums@mydomain.com 是否已配置为代表 noreply-forums@mydomain.com 发送邮件,这需要在您的邮件提供商处进行检查。
1 个赞
jlgarnier
(Jean-Luc GARNIER)
2022 年9 月 20 日 13:33
36
我不确定此地址是否可以“代表”发送,因此我已更新 app.yml 以设置相同的地址:
DISCOURSE_SMTP_ADDRESS: ssl0.ovh.net
DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_USER_NAME: forums@mydomain.com
DISCOURSE_SMTP_PASSWORD: "Str0ngPassw0rd"
DISCOURSE_SMTP_ENABLE_START_TLS: false
DISCOURSE_SMTP_DOMAIN: mydomain.com
DISCOURSE_NOTIFICATION_EMAIL: forums@mydomain.com
尝试 telnet ssl0.ovh.net 465 = OK
但是 discourse-doctor 报告:
========================================
Discourse 2.9.0.beta9
Discourse version at forums.mydomain.com: Discourse 2.9.0.beta9
Discourse version at localhost: NOT FOUND
==================== DNS PROBLEM ====================
This server reports NOT FOUND, but forums.mydomain.com reports Discourse 2.9.0.beta9 .
This suggests that you have a DNS problem or that an intermediate proxy is to blame.
[... ]
Testing sending to myprivatemail@yahoo.fr using ssl0.ovh.net:465, username:forums@mydomain.com with plain auth.
======================================== ERROR ========================================
UNEXPECTED ERROR
Net::ReadTimeout
====================================== SOLUTION =======================================
邮件问题是否可能与所谓的 DNS 问题有关?我没有“中间代理”,只是运行 nginx 作为代理 Web 服务器……
Jean-Luc GARNIER:
DISCOURSE_SMTP_PORT: 465
这可能是您的问题。您可以尝试使用不同的端口吗?如果您的电子邮件提供商支持端口 587,我曾获得最佳结果。
如果您将端口更改为 587,则需要注释掉此行或将其设置为 true。
jlgarnier
(Jean-Luc GARNIER)
2022 年9 月 20 日 13:44
38
不,我的电子邮件提供商(与托管提供商相同)只允许使用端口 465。顺便说一下,我读到我需要为域(这是子 域吗?)设置 SPF 和 DKIM 记录,而我还没有设置任何这些记录:这会产生影响吗?
pfaffman
(Jay Pfaffman)
2022 年9 月 20 日 13:46
39
1 个赞
jlgarnier
(Jean-Luc GARNIER)
2022 年9 月 20 日 14:43
40
我正在浏览帖子,但我忘记了一些信息:
DNS 由我们的托管服务提供商管理(用于某些服务),我们称之为 ServerA。
Discourse 运行在另一台服务器(ServerB)上,该服务器由不同的提供商托管。
我的理解是:ServerB 上的 Discourse 连接到 ServerA 上的邮件服务器,使用 email/password 进行身份验证,以使用 ServerA 托管服务提供商提供的 SMTP 服务。
这是不正常的配置,还是我仍然可以在这里使用正常的 app.yml 邮件配置?