Проблемы с настройкой Discourse через обратный прокси

Установил Wikijs (Docker Compose) и Discourse.

Wikijs работал нормально, обратный прокси тоже функционировал.
Приступил к установке Discourse, но возникли проблемы. Провёл исследование и выяснил, что это может быть связано с установкой Docker при первой настройке Ubuntu.

Поэтому остановил контейнер Wikijs для обновления. Переустановил всё из репозитория Docker. Запустил Wikijs снова, и ошибок, насколько я мог видеть, не было.
Также запустил Discourse, и на этот он прошёл весь процесс загрузки. Затем попытался получить доступ к сайтам. Nginx находится на другом сервере, поэтому я не трогал обратные прокси. Угадайте, что? Я не могу получить доступ ни по доменным именам, ни по локальному IP:порту.

Я совершенно растерян, так как оба сервиса сообщают, что работают, а ранее Wikijs позволял подключаться. Я был так близко. :') В системном журнале (syslog) тоже нет никаких записей об этих двух сервисах.

Ниже приведена дополнительная информация.

Обратные прокси:

server {
        listen 80;
        listen [::]:80;

        root /var/www/website.co.uk/html;
        index index.html index.htm index.nginx-debian.html;

        server_name website.co.uk www.website.co.uk;

        location / {
                rewrite ^(/.*)\.html(\?.*)?$ $1$2 permanent;
                rewrite ^/(.*)/$ /$1 permanent;
                try_files $uri/index.html $uri.html $uri/ $uri =404;
        }

        location /css {
                alias /var/www/website.co.uk/html/css;
        }

        location /images {
                alias /var/www/website.co.uk/html/media/images;
        }

        location /videos {
                alias /var/www/website.co.uk/html/media/videos;
        }

        location /music {
                alias /var/www/website.co.uk/html/media/music;
        }

        location /fonts {
                alias /var/www/website.co.uk/html/media/fonts;
        }

        location /scripts {
                alias /var/www/website.co.uk/html/scripts;
        }
}

server {
        listen 80;
        server_name wiki.website.co.uk;

        #ssl_certificate           /etc/nginx/cert.crt;
        #ssl_certificate_key       /etc/nginx/cert.key;

        #ssl on;
        #ssl_session_cache  builtin:1000  shared:SSL:10m;
        #ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
        #ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
        #ssl_prefer_server_ciphers on;

        location / {
                proxy_set_header        Host $host;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Forwarded-Proto $scheme;

                proxy_pass      http://internalip:port;
                proxy_read_timeout 90;

                proxy_redirect http://127.0.0.1 https://internalip:port;
        }
}
server {
        listen 80;
        server_name forums.website.co.uk;

        #ssl_certificate           /etc/nginx/cert.crt;
        #ssl_certificate_key       /etc/nginx/cert.key;

        #ssl on;
        #ssl_session_cache  builtin:1000  shared:SSL:10m;
        #ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
        #ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
        #ssl_prefer_server_ciphers on;

        location / {
                proxy_set_header        Host $host;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Forwarded-Proto $scheme;

                proxy_pass      http://internalip:port2;
                proxy_read_timeout 90;

                proxy_redirect http://127.0.0.1 https://internalip:port2;
        }
}

Туннель установлен на той же машине, что и Discourse с Wikijs, но я сомневаюсь, что это проблема, так как он работает уже давно без сбоев.
При посещении форума я вижу ошибку «Bad gateway» (плохой шлюз), а при попытке зайти на вики получаю тайм-аут 504 от Nginx.

Буду очень признателен за любую помощь. :slight_smile:
Спасибо, Blood.

Нужно ли изменить эти порты внутри app.yml:

expose:
  - "80:80"   # http
  - "443:443" # https

на что-то вроде:

expose:
  - "8000:80"   # http
  - "8080:443" # https

где 8000 — порт, с которого основное Nginx-устройство будет искать подключение?
Это единственное, что у меня есть, и я протестировал — похоже, не работает. (Пересобрал приложение Discourse).

Смотрите Запуск других веб-сайтов на той же машине, что и Discourse

Вам нужно удалить шаблоны ssl и let’s encrypt. Ваш nginx должен обрабатывать ssl, а для Discourse достаточно порта 80 для подключения прокси.

Сработает ли это для одной и той же домашней сети, а не обязательно для одной и той же машины, поскольку они фактически не находятся на одном устройстве? :slight_smile:

Я предполагаю, что это связано с тем, как мне исправить эту проблему?
“Вы не можете использовать ./discourse-setup для настройки Discourse, если другой сервер использует порт 80 или 443. Вам нужно скопировать и отредактировать samples/standalone.yml в вашем любимом текстовом редакторе.”
Это цитата из предоставленного руководства. Поскольку я запускаю Nginx на том самом другом сервере.