مشاكل متعددة في إعداد الحاويات

مرحباً بالجميع! بعد محاولة فهم إعداد الموقع المتعدد وفشلي ذريعاً، انتهيت بإنشاء ثلاثة حاويات منفصلة: واحدة لمنتدىي الحالي واثنتان لمنتديات الأرشيف. اخترت استخدام المقابس (socketed)، وتمكنت من تشغيل NGINX بنجاح، وحتى قمت بتفعيل Let’s Encrypt وفقاً لهذه الإرشادات.

خصصت حاوية unicorn واحدة لمنتديات الأرشيف، وواحدة فقط للمنتدى الحالي، لكنني أواجه تساؤلاً: هل يمكنني حقاً القيام بذلك بشكل مباشر كما هو؟ هل تعمل جميع الحاويات على Redis و Sidekiq بطريقة تسبب فوضى كبيرة؟ أم يجب أن أربط حاويتي الأرشيف بالحاوية الأولى وهكذا؟ لأنه الآن، بعد الاستعادة، أرى هذه الرسالة:

عذراً
واجهت البرمجيات التي تشغل منتدى النقاش هذا مشكلة غير متوقعة. نعتذر عن الإزعاج.

تم تسجيل معلومات مفصلة حول الخطأ، وتم إنشاء إشعار تلقائي. سنقوم بفحص الأمر.

لا حاجة لاتخاذ أي إجراء إضافي. ومع ذلك، إذا استمرت حالة الخطأ، فيمكنك تقديم تفاصيل إضافية، بما في ذلك خطوات تكرار الخطأ، من خلال نشر موضوع نقاش في فئة التغذية الراجعة الخاصة بالموقع.

لقد فهمت من موضوع الموقع المتعدد أنه يجب وجود حاويتين منفصلتين عند إعداد الموقع المتعدد، لكنني لم أفهم تماماً ما المقصود بـ “حاويات البيانات” و “حاويات الويب”. هل يعني ذلك أن حاوية البيانات هي الوحيدة التي تستخدم SQL، بينما حاويات الويب تستخدم Redis و Sidekiq، أم ماذا؟

أنا متعلم سريع ولدي بعض الخبرة في هذا المجال، لكن لا يمكنني القول إنني مسؤول نظام.

التوصية هي أن يكون لديك حاوية واحدة تحتوي على Redis و Postgres، وحاوية ثانية تحتوي على خادم الويب. إذا كان لديك حاويتان للويب، فستحتاج إلى وجود خادم Nginx خارجي آخر يقوم بعمل عكس العكس (reverse proxy) للحاويات الخاصة بالويب. سيكون من الأسهل وجود خادم متعدد المواقع واحد.

لدي هذا في /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; # تم إدارته بواسطة Certbot
    listen 443 ssl; # تم إدارته بواسطة Certbot
    ssl_certificate /etc/letsencrypt/live/uskojarukous.fi/fullchain.pem; # تم إدارته بواسطة Certbot
    ssl_certificate_key /etc/letsencrypt/live/uskojarukous.fi/privkey.pem; # تم إدارته بواسطة Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # تم إدارته بواسطة Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # تم إدارته بواسطة 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; # تم إدارته بواسطة Certbot
    listen 443 ssl; # تم إدارته بواسطة Certbot
    ssl_certificate /etc/letsencrypt/live/uskojarukous.fi/fullchain.pem; # تم إدارته بواسطة Certbot
    ssl_certificate_key /etc/letsencrypt/live/uskojarukous.fi/privkey.pem; # تم إدارته بواسطة Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # تم إدارته بواسطة Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # تم إدارته بواسطة 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; # تم إدارته بواسطة Certbot
    listen 443 ssl; # تم إدارته بواسطة Certbot
    ssl_certificate /etc/letsencrypt/live/uskojarukous.fi/fullchain.pem; # تم إدارته بواسطة Certbot
    ssl_certificate_key /etc/letsencrypt/live/uskojarukous.fi/privkey.pem; # تم إدارته بواسطة Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # تم إدارته بواسطة Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # تم إدارته بواسطة Certbot

}

server {
    if ($host = www.uskojarukous.fi) {
        return 301 https://$host$request_uri;
    } # تم إدارته بواسطة Certbot


    if ($host = nyforum.uskojarukous.fi) {
        return 301 https://$host$request_uri;
    } # تم إدارته بواسطة Certbot


    if ($host = uskojarukous.fi) {
        return 301 https://$host$request_uri;
    } # تم إدارته بواسطة Certbot


        listen  80;
        listen  [::]:80;

        server_name www.uskojarukous.fi uskojarukous.fi nyforum.uskojarukous.fi;
    return 404; # تم إدارته بواسطة Certbot






}

server {
    if ($host = ueforum.uskojarukous.fi) {
        return 301 https://$host$request_uri;
    } # تم إدارته بواسطة Certbot


        listen  80;
        listen  [::]:80;

        server_name ueforum.uskojarukous.fi;
    return 404; # تم إدارته بواسطة Certbot


}

server {
    if ($host = urforum.uskojarukous.fi) {
        return 301 https://$host$request_uri;
    } # تم إدارته بواسطة Certbot


        listen  80;
        listen  [::]:80;

        server_name urforum.uskojarukous.fi;
    return 404; # تم إدارته بواسطة Certbot


}

على الأقل يعمل منتديان منها بشكل صحيح…