502 Bad Gateway и версия Discourse НЕ НАЙДЕНА

Я следовал инструкциям по установке Discourse на CentOS 7.

Я правильно настроил электронную почту и получил тестовое письмо. Однако я постоянно получаю ошибку 502 Bad Gateway.

Ранее у меня была проблема с ssl_stapling, которую я решил, включив файл полного цепочечного сертификата.

Я вижу, что приложение Docker слушает на пользовательском порту 25654:

0.0.0.0:25654->80/tcp, :::25654->80/tcp

Я получаю следующие ошибки nginx, которые, как я полагаю, вызваны тем, что приложение Discourse не слушает.

connect() failed (111: Connection refused) while connecting to upstream, client: x.x.x.x, server: xxxx, request: “GET / HTTP/2.0”, upstream: “http://x.x.x.x:25654/”, host: “xxxx”

У меня есть записи DNS, указывающие как [MY_DOMAIN].net, так и discourse.[MY_DOMAIN].net на правильный IP-адрес.

Добро пожаловать в сообщество Meta Discourse :slightly_smiling_face:

Я часто помогаю с проблемами установки SSL в сообществе Let’s Encrypt. Одна вещь, которую я заметил: в вашем втором блоке сервера отсутствует директива прослушивания IPv6:

listen [::]:443 ssl http2;

Без неё я не уверен, куда будет направляться ваш IPv6-трафик.

:man_shrugging:

Большое спасибо, Джонатан. Это решило проблему с отказом в подключении.

Теперь при попытке перейти по адресу моего Discourse я перенаправляюсь на страницу «Добро пожаловать в CentOS», и вот что я вижу в логе ошибок.

nginx settings2

Утилита Discourse doctor по-прежнему сообщает, что версия НЕ НАЙДЕНА.

Я вижу с помощью netstat, что у меня два процесса docker-proxy на порту 25654: один для tcp и один для tcp6. Мне интересно, является ли это проблемой, так как я не вижу этого на скриншотах в других руководствах.

Поскольку CentOS, похоже, требует иной настройки, я следовал инструкциям по настройке nginx из этого руководства:

Также я внес некоторые дополнительные изменения в app.yml и конфигурацию nginx, которые увидел в этом руководстве, так как хочу, чтобы MYDOMAIN.net и discourse.MYDOMAIN.net работали на одной машине через nginx:

Например, у меня активирован шаблон веб-сокетов.

Однако сейчас я прочитал в комментарии к тому руководству, что если вы используете сокеты, то необходимо закомментировать все открытые порты, хотя согласно первой конфигурации была добавлена запись «25654:80», чтобы слушать трафик, перенаправляемый nginx на порт 25654.

Извините, если это базовая проблема настройки; перенаправление портов, сокеты и сетевая настройка в целом — не моя сильная сторона.

Это продвинутые конфигурации. Для пользователей, не имеющих опыта настройки обратных прокси и управления Docker, мы рекомендуем следовать нашему единственному официальному руководству по стандартной установке Discourse. Это предполагает, что у вас новый сервер и что Discourse является единственным веб-приложением на нём.