リバースプロキシでのDiscourseの設定に問題が発生

Wikijs(Docker compose)とDiscourseをインストールしました。

Wikijsは正常に動作しており、リバースプロキシも機能していました。
Discourseのインストールを開始したところ、問題が発生しました。調査したところ、Ubuntuを初めてインストールした際のDockerのインストールに関連する問題の可能性があることがわかりました。

そのため、更新のためにWikijsのDockerを停止しました。Dockerリポジトリからすべてを再インストールしました。Wikijsを起動したところ、エラーは見つかりませんでした。
今回はDiscourseも起動し、ブートシーケンス全体が実行されました。そこでサイトにアクセスしようとしました。Nginxは別のサーバーにあるため、リバースプロキシには触れていません。さて、どうなったでしょう?ドメイン名とローカルIP:ポートの両方からアクセスできません。

両方とも実行中と表示されており、以前はWikijsに接続できていたため、完全に混乱しています。あと一歩だったのに。:') Syslogにもこれらの2つに関する情報は何もありません。

以下に詳細情報を示します。

リバースプロキシ:

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」と表示され、WikiではNginxから504タイムアウトが発生します。

これについて、どんな助けでも大変感謝します。:slight_smile:
よろしくお願いします、Blood。

「いいね!」 1

app.yml の内部でこれらのポートを変更しますか?

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

次のように変更しますか?

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

8000 は、メインの Nginx マシンから探したいポートです。
これが私の頭の中にある唯一のことで、テストしましたが、うまくいかないようです。(Discourse アプリを再構築しました)。

「いいね!」 1

See Run other websites on the same machine as Discourse

SSL および Let’s Encrypt のテンプレートを削除する必要があります。Nginx で SSL を処理し、Discourse はプロキシが接続するためにポート 80 のみを使用する必要があります。

「いいね!」 1

同じホームネットワークで、実際には同じマシンではないため、同じマシンではないという理由で機能しますか?:slight_smile:

これは、これを修正する方法に関係していると仮定していますか?
「別のサーバーがポート 80 または 443 を使用している場合、./discourse-setup を使用して Discourse をセットアップすることはできません。samples/standalone.yml をコピーして、お好みのテキストエディターで編集する必要があります。」
これは、提供されたガイドからのものです。Nginx を別のサーバーで実行しているためです。

「いいね!」 1