مواقع متعددة مقابل حاويات متعددة

Does anyone know the pros and cons of multisite vs multiple containers?

I currently have three Discourse instances as separate containers, and am thinking about converting two, maybe three more forums to Discourse - they’ll be on the same server (64GB RAM, running SSDs) so I’m wondering what might be the best way forward.

I’d prefer them to be as independent as possible, so each can be upgraded individually, backed up and restored individually, and issues with one should not affect another.

What do you suggest? Any pros and cons to look out for?

You won’t be able to upgrade individually with multisite, nor will you be able to segment plugins used. All of that is defined by the root multisite. Settings, themes, and backups can all happen separately, though.

Generally you’ll need a proxy in front to help with SSL certs, too.

3 إعجابات

Actually, I’ve worked out a way to get let’s encrypt to get certs for multiple domains and not redirect to the primary domain. Setup Multisite Configuration with Let's Encrypt and no Reverse Proxy

@AstonJ, would you be interested in testing my howto? I’m 90% sure that it works, but it was some weeks ago that I last tested and I’m not entirely sure that the instructions “work” for someone who’s not me.

If you want all the sites to have the same plugins and be upgraded all at the same time, multisite is great.

3 إعجابات

I could just switch off any unused plugins via the ACP (and I think there’s only one that one of the forums won’t need) so I guess it depends on are there any benefits to doing multisite? Specifically, performance and/or stability?

I think I read @Blake once post that it’s insane not to run PG in it’s own container (is that different to multisite?) hence why I’ve been thinking about doing this. Btw don’t quote me on what Blake said I could have well dreamt it :rofl:

I use HAProxy which deals with our SSL certs so I ‘think’ that may be ok.

I think it will depend on the benefits Jay - if there’s not much difference then I don’t mind carrying on as I have been as it’s become relatively easy to set-up and manage, but if there are some big advantages to going multisite I would definitely be interested :sunglasses:

The other advantage is that you’re running just one more copy of rails and nginx, so the additional RAM required is much less. You’ve got lots of RAM, though, so going with what works already is starting to sound like the best idea.

إعجابَين (2)

مرحباً. هل من الممكن دمج المستخدمين من مواقع متعددة بحيث يمكن تسجيل المستخدم في جميع المواقع المتعددة في نفس الوقت عن طريق التسجيل في أحد المواقع (كما في ماجنتو). أو نسخة فائقة من استخدام ديسكورس، مشابهة للاتحاد. بحيث تعمل التنبيهات بشكل متزامن ويمكن لمستخدم الموقع رقم 1 تلقي تنبيهات من الموقع رقم 2؟ وينطبق الشيء نفسه على الدردشة.
لدي 4 مجتمعات في نفس الاتجاه الكبير، ولكن بمواضيع مختلفة، وأود أن تكون هذه المجتمعات متكاملة بشكل وثيق مع بعضها البعض

يمكنك جعل موقع واحد هو خادم مصادقة Discourse Connect وجعل جميع المواقع الأخرى تصادق ضده.

إعجابَين (2)

أحاول معرفة ما إذا كنت بحاجة إلى إعداد متعدد المواقع، أو حاويات متعددة، أو شيء آخر.

لدي حاليًا 3 مجتمعات مستقلة، اثنان منها متشابهان (كلاهما عن الرياضات الجامعية ولكن لمدرستين منفصلتين) والثالث عن الطبخ والخبز.

أود أن تكون هذه كلها على نفس الخادم (بسبب قيود عنوان IP من قبل مزود خدمة الإنترنت الخاص بي)، ولكن على عناوين URL منفصلة، تشبه إلى حد ما هذا:

foo.bar.com/team1
foo.bar.com/team2
foo.bar.com/cooking

team1.bar.com يعيد التوجيه إلى foo.bar.com/team1، وما إلى ذلك، أو إلى خوادم افتراضية منفصلة، سيكون مقبولاً أيضًا. (أعلم أن Apache يمكنه فعل ذلك، لذا أفترض أن nginx يمكنه أيضًا، إما مباشرة أو مع خادم وكيل في المقدمة.)

من الناحية المثالية، سيكون foo.bar.com نفسه بمثابة بوابة لهذه المجتمعات المستقلة، موضحًا ما هي وكيفية الوصول إليها. قد تكون بعض الفئات في كل مجتمع قابلة للقراءة بشكل عام ويمكن الوصول إليها بواسطة برامج زحف الويب حتى تظهر في عمليات البحث على الويب.

هل هذا إعداد متعدد المواقع أم إعداد حاويات متعددة، أم شيء آخر تمامًا؟

هل هناك أي مشاكل معروفة في تصميم المكونات الإضافية عند تشغيل Multisite؟

يبدو أن Chatbot الخاص بي لا يدعم Multisite (لذا فهي مشكلة معروفة)، ولكن أود أن أفهم السبب: إنه يعمل بشكل جيد في التثبيت القياسي.

على وجه التحديد، يبدو أن هناك مشاكل مع مهمة إعداد قاعدة البيانات وربما هذه المهمة.

إعجاب واحد (1)

أردت أن أقدم تحديثًا عن وضعي.

بعد بعض الدراسة، قررت أنني بحاجة إلى إعداد متعدد المواقع (حاوية واحدة في هذه المرحلة) مع موقع nginx “خارجي” لشرح الإعداد وتوجيه الأشخاص وحركة المرور إلى مواقع discourse المنفصلة. بهذه الطريقة يمكنني جعل كلا الموقعين مفتوحين للقراءة فقط (ولمحركات الويب) دون أن يضطر الأشخاص الموجودون على القائمة 1 إلى التعامل مع المحتوى من القائمة 2. قد أحتاج إلى العبث بملف robots.txt لإرضاء محركات الويب.

كانت أمثلة إعداد المواقع المتعددة مفيدة، لكنني لم أتمكن من جعلها تعمل مع مقبس Unix (خطأ في البوابة)، لذلك انتهى بي الأمر بإعادة توجيهها إلى منفذ آخر وإعادة توجيه هذا المنفذ إلى 443 داخل الحاوية.

في ملف app.yml الخاص بي، قمت بتمكين قالب SSL ولكن ليس قالب letsencrypt.

لقد نجحت في تشغيل موقع الاختبار، والآن أبحث عن أي مشاكل قد تنشأ عند تحويل موقع الإنتاج، على أمل في وقت لاحق من هذا الشهر أو الشهر المقبل.

أنا أهتم بمشكلة الشهادة على جانب الخادم الخارجي، لكنني واجهت مشكلة “غير آمن” التي قمت بإصلاحها عن طريق طلب https داخل الحاوية. لدي مهمة سأقوم بتشغيلها عبر cron لنسخ أحدث شهادة ومفتاح إلى دليل /shared/ssl الخاص بالحاوية (باسم ssl.crt و ssl.key). لست متأكدًا مما إذا كنت سأحتاج إلى فرض إعادة تحميل nginx داخل الحاوية للتأكد من تحميل شهادة جديدة عند تغييرها (في يوليو، أعتقد).

لقد واجهت مشكلة واحدة في discourse:

في ملف الحاوية /etc/nginx/conf.d/discourse.conf يوجد هذا الجزء من التعليمات البرمجية (تم تغيير اسم النطاق):

if ($http_host != 'site1.my.domain') {
   rewrite (.*) https://site1.my.domain$1 permanent
}

كان هذا يتسبب في إعادة توجيه site2.my.domain إلى site1.my.domain، لذلك كان عليّ التعليق عليه.

ملاحظة: إعادة بناء الحاوية تتطلب إعادة القيام بهذا التعديل، هل هناك طريقة لتجنب ذلك؟

وأدى ذلك إلى مشكلة في المتصفح، لأن فايرفوكس قد أشار إلى هذا التوجيه على أنه دائم، لذلك كان عليّ حذف ذاكرة التخزين المؤقت للمتصفح. (لقد استغرق مني ذلك وقتًا طويلاً جدًا لمعرفة ذلك!)

لقد توصلت إلى شيء غريب آخر.

على موقع الاختبار الخاص بي، لم يتم تحديد المعلمة المطلوبة لـ https لكلا الموقعين. على موقع الإنتاج الخاص بي، هذه المعلمة غير موجودة حتى في ملف الإعدادات. أنا أخمن أن هذا له علاقة بالاختلافات بين الموقعين.