你检查了应用中的
nginx日志文件以寻找线索吗?
@NoBugsBunny 还没有,我会检查并汇报结果。我一直以为问题不可能出在容器上,因为它应该已经用正确的内容构建了。不过,我确实检查了容器中 Nginx 的设置,发现它被配置为提供“欢迎使用 Nginx”的 HTML 文件。
在安装 Discourse(或者很可能是任何其他东西)之前,你需要先修复这个问题。
@pfaffman 奇怪的是,这是我们的生产 ESXi 服务器,上面运行着许多其他虚拟机,一切正常。
你检查了应用中的
nginx日志文件以寻找线索吗?
@NoBugsBunny 还没有,我会检查并汇报结果。我一直以为问题不可能出在容器上,因为它应该已经用正确的内容构建了。不过,我确实检查了容器中 Nginx 的设置,发现它被配置为提供“欢迎使用 Nginx”的 HTML 文件。
在安装 Discourse(或者很可能是任何其他东西)之前,你需要先修复这个问题。
@pfaffman 奇怪的是,这是我们的生产 ESXi 服务器,上面运行着许多其他虚拟机,一切正常。
@NoBugsBunny 看起来这是因为 Nginx 认为需要使用证书,尽管我在它提示输入 Let’s Encrypt 详情时没有输入任何内容。有没有办法暂时不使用任何证书?
/var/log/nginx/error.log
2020/08/03 14:51:00 [emerg] 24093#24093: cannot load certificate "/shared/ssl/uat.xxxxx.com.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
/var/log/nginx/error.letsencrypt.log
2020/08/02 12:54:46 [error] 42#42: *2 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 218.103.208.140, server: , request: "GET /favicon.ico HTTP/1.1", host: "uat.xxxxx.com", referrer: "http://uat.xxxxx.com/"
2020/08/03 07:27:56 [error] 35#35: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 218.103.208.140, server: , request: "GET /favicon.ico HTTP/1.1", host: "uat.xxxxx.com", referrer: "http://uat.xxxxx.com/"
/var/log/nginx/access.letsencrypt.log
18.196.96.172 - - [03/Aug/2020:07:23:19 +0000] "GET /.well-known/acme-challenge/1nstApP9BeEaE3oC-WYBCvqMUuePRq6AV_JICf6XOM4 HTTP/1.1" 200 87 "-" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"
3.128.26.105 - - [03/Aug/2020:07:23:20 +0000] "GET /.well-known/acme-challenge/1nstApP9BeEaE3oC-WYBCvqMUuePRq6AV_JICf6XOM4 HTTP/1.1" 200 87 "-" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"
34.211.6.84 - - [03/Aug/2020:07:23:20 +0000] "GET /.well-known/acme-challenge/1nstApP9BeEaE3oC-WYBCvqMUuePRq6AV_JICf6XOM4 HTTP/1.1" 200 87 "-" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"
64.78.149.164 - - [03/Aug/2020:07:23:29 +0000] "GET /.well-known/acme-challenge/1nstApP9BeEaE3oC-WYBCvqMUuePRq6AV_JICf6XOM4 HTTP/1.1" 200 87 "-" "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"
218.103.208.140 - - [03/Aug/2020:07:27:56 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36"
218.103.208.140 - - [03/Aug/2020:07:27:56 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "http://uat.xxxxx.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36"
从 app.yml 文件中移除 SSL 模板
然后重新构建
有。
有多种方法可以实现这一点。
我建议您在容器的 yml 文件中注释掉 Letsencrypt (LE) 模板,并注释掉其他与 LE 相关的环境变量,然后重新构建。
如果您需要更多帮助,请告诉我 @titusc,恭喜您找到了问题所在。
做得很好。
您快成功了!![]()
@IAmGav @neounix 感谢提供的信息。是的,我在运行 ./discourse-setup 后,在 containers/app.yml 文件中找到了以下行。
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## 如果您想添加 Lets Encrypt (https),请取消注释这两行
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
这有点令人失望,因为即使我在回答 Let’s Encrypt 警告的可选电子邮件地址?(按 Enter 跳过) 时直接按了 Enter,该文件仍会按原样生成。
注释掉最后两行,然后运行 ./launcher stop app 和 ./launcher rebuild app 即可解决问题。
唉。我觉得像这样的说明最好能写在 30 分钟快速基础安装 中。
特别感谢 @neounix 如此鼓励大家。