(SSL: error:02001002:system library:fopen:No such file or directory:fopen('/var/dis (…)
我正在按照指南操作,但找不到关于此错误的任何说明。
cd ssl: 没有那个文件或目录
这周我也遇到过类似的安装失败情况。或许可以尝试运行
./launcher rebuild app
我重新构建了一次。我按照指南进行了设置。已配置受信任的 SSL(/etc/nginx/sites-enabled/discourse.conf),但我遇到了以下错误:
SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE
nginx 完全无法启动:
nginx.service: 控制进程已退出,code=exited status=1
nginx.service: 执行失败,结果 'exit-code'。
进程:3840 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
进程:25108 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=1/FAILURE)
// 启动高性能 Web 服务器和反向代理服务器失败。
是的,而且我也在使用这份指南:Run other websites on the same machine as Discourse
你好 @slivo
上面那个链接描述的是在 Docker 容器中运行 Discourse,并通过 UNIX socket 将应用暴露给反向代理的配置方式。
在这种情况下,你不应该在容器的 yml 文件中启用 SSL;而应该在容器外部的反向代理上,使用 certbot 通过 Let’s Encrypt 来配置 SSL。
整体的高层架构大致如下:
WEB 用户 <-- HTTPS --> 反向代理 <-- HTTP --> Docker 容器
请将你的 yml 文件贴出来,记得把密码和邮箱地址用 xxxx 代替;让我们看看你现在的配置情况。
谢谢。
但现在我不明白了。然后我用 certbot 生成了一个新证书。我这里有这样的输出:
/etc/letsencrypt/live/myadress.com/fullchain.pem
您的密钥文件已保存至:
/etc/letsencrypt/live/myadress.com/privkey.pem
我是否需要修改这个文件中的地址,或者修改 /etc/nginx/sites-enabled/discourse.conf?还是我完全搞错了?
你好 @slivo
当你在另一个应用前配置 nginx 反向代理时:必须非常明确配置文件的位置,是在容器内还是容器外?
我不确定我是否完全理解。我只是想在 nginx 后面部署 Discourse。服务器上目前没有运行其他应用,但我这样做是为了从外部获得更好的保护。
你好 @slivo
我理解你的沮丧。让我为你详细解释一下。
在你之前的某条帖子中,你提到:
/etc/letsencrypt/live/myadress.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/myadress.com/privkey.pem
但你并未说明你是在 Docker 容器内还是容器外操作。
如你所知,nginx(在你的情况下)既在宿主机上直接运行,也在应用内部(即 Docker 容器内)运行。
当你发布:
/etc/letsencrypt/live/myadress.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/myadress.com/privkey.pem
如果我们作为外部人员,在你未提供完整信息的情况下,如何确切知道你所指的是什么?这个配置是在容器内还是容器外?我们可以“猜测”或“假设”你指的是容器外的配置,但由于你未提供这些细节,我们无法确定。根据我的经验,从问题到解决方案的最短路径是:绝不假设任何事,并密切关注细节。
此外,你尚未发布你的 yml 文件,也未发布容器外的 nginx 配置文件。因此,我们无法“看到”你实际在配置中做了什么。
希望这能帮到你。