嘿,
我能够在服务器上通过 Plesk 为两个不同的域名安装两个 Discourse 容器。两者都在运行,只是出现了 502 错误。
错误日志显示:
2020/04/18 13:48:45 [error] 61#61: *125 upstream prematurely closed connection while reading response header from upstream, client: 172.17.0.1, server: _, request: "GET / HTTP/1.0", upstream: "http://127.0.0.1:3000/", host: "my.domain"
当我只运行一个容器时,这个错误根本不会出现。我尝试了一些设置,但未能解决问题。据我理解,这与 Nginx 有关,也可能是因为容器的 DOCKER_HOST_IP 相同。遗憾的是,我找不到在哪里可以更改这个值。在 Plesk 中对该值进行的编辑对日志没有产生任何影响。如果有人能帮我解决这个问题,或者至少给我一些清晰的建议,告诉我遗漏了哪些设置,我将不胜感激。
另外,抱歉我的英语不好,希望我的句子表达得通顺。
好的,我已经解决了我的问题。以下是我的解决方法:
针对这个错误信息的许多解决方案都与超时有关,所以我尝试了同样的修复方法。但这没有任何效果。以下是我最初设置额外 nginx 指令的方式:
location / {
proxy_pass [https://localhost:8500/;](http://)
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect https://localhost:8500/ https://my.domain;
proxy_read_timeout 300s;
proxy_connect_timeout 75s;
}
但正如我之前所说,这并没有任何作用。于是我继续搜索,直到发现了这个链接:
https://support.plesk.com/hc/en-us/articles/115004292154-How-to-change-proxy-read-timeout-for-domain-in-Plesk
该链接建议将超时参数直接放入文本框中,于是我就这样做了:
代理是通过 Plesk Docker 插件处理的。
现在一切运行完美。希望这对其他遇到同样问题的人有所帮助。