複数のコンテナ設定の問題

こんにちは!マルチサイト設定を試みましたが、全くうまくいかず、最終的に3つの独立したコンテナを作成しました。現在のフォーラム用1つと、アーカイブ用フォーラム2つです。ソケット化を選択し、NGINXの動作確認に成功しました(https://meta.discourse.org/t/running-other-websites-on-the-same-machine-as-discourse/17247)。さらに、これらのガイドラインに従って1つずつLet’s Encryptも設定済みです(https://certbot.eff.org/lets-encrypt/ubuntubionic-nginx)。

アーカイブ用フォーラムにはユニコーンを1つ割り当て、現在のフォーラムには1つだけ割り当てました。しかし、ここで疑問に思ったことがあります:本当にこれで問題なく動作するのでしょうか?すべてのコンテナがRedisとSidekiqを競合する形で実行してしまっている可能性はありませんか?それとも、2つのアーカイブ用コンテナを最初のコンテナに何らかの方法でリンクすべきなのでしょうか?

現在、リストア後に次のメッセージが表示されます:

おっと
このディスカッションフォーラムを動かすソフトウェアで予期せぬ問題が発生しました。ご迷惑をおかけして申し訳ございません。

エラーの詳細はログに記録され、自動的に通知が生成されました。確認いたします。

追加の対応は不要ですが、エラーが継続する場合は、エラーの再現手順などの詳細情報を、サイトのフィードバックカテゴリに投稿していただければ幸いです。

マルチサイトトピックから、マルチサイト設定を行う際には2つの独立したコンテナが必要だと理解しました。しかし、「データコンテナ」と「Webコンテナ」の意味が今一つ分かりません。これは、データコンテナだけがSQLを使用し、WebコンテナだけがRedisとSidekiqを使用するということでしょうか?それとも違うのでしょうか?

私はこの分野について少し知識があり、学習速度も速い方ですが、システム管理者ではないので確信が持てません。

推奨構成は、Redis と Postgres を含む 1 つのコンテナと、Web サーバーを含むもう 1 つのコンテナです。Web コンテナが 2 つある場合は、それらの Web コンテナに対して外部の nginx リバースプロキシを別途用意する必要があります。単一のマルチサイトサーバーとする方が簡単です。

以下は /etc/nginx/sites-available/default にある設定です:

server {

    server_name www.uskojarukous.fi uskojarukous.fi nyforum.uskojarukous.fi;

    location /errorpages/ {
        alias /var/www/errorpages/;
    }

    location / {
        proxy_pass http://unix:/var/discourse/shared/nyforum/nginx.http.sock:;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        error_page 502 =502 /errorpages/offline.html;
    }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/uskojarukous.fi/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/uskojarukous.fi/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {

    server_name urforum.uskojarukous.fi;

    location /errorpages/ {
        alias /var/www/errorpages/;
    }

    location / {
        proxy_pass http://unix:/var/discourse/shared/urforum/nginx.http.sock:;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        error_page 502 =502 /errorpages/offline.html;
    }

    listen [::]:443 ssl; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/uskojarukous.fi/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/uskojarukous.fi/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {

    server_name ueforum.uskojarukous.fi;

    location /errorpages/ {
        alias /var/www/errorpages/;
    }

    location / {
        proxy_pass http://unix:/var/discourse/shared/ueforum/nginx.http.sock:;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        error_page 502 =502 /errorpages/offline.html;
    }

    listen [::]:443 ssl; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/uskojarukous.fi/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/uskojarukous.fi/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
    if ($host = www.uskojarukous.fi) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    if ($host = nyforum.uskojarukous.fi) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    if ($host = uskojarukous.fi) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 80;
    listen [::]:80;

    server_name www.uskojarukous.fi uskojarukous.fi nyforum.uskojarukous.fi;
    return 404; # managed by Certbot
}

server {
    if ($host = ueforum.uskojarukous.fi) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 80;
    listen [::]:80;

    server_name ueforum.uskojarukous.fi;
    return 404; # managed by Certbot
}

server {
    if ($host = urforum.uskojarukous.fi) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 80;
    listen [::]:80;

    server_name urforum.uskojarukous.fi;
    return 404; # managed by Certbot
}

少なくとも 2 つのフォーラムは正常に動作しています…