Привет,
Мне удалось установить два контейнера Discourse на мой сервер с Plesk под двумя разными доменами. Оба работают, но я получаю ошибку 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
Там предлагается поместить параметры тайм-аута прямо в текстовое поле, и я сделал так:
Прокси обрабатывается через плагин Docker для Plesk.
Теперь всё работает отлично. Надеюсь, это поможет кому-то ещё, кто столкнулся с той же проблемой.