مثيلات نطاقات فرعية متعددة لـ Discourse في نفس النطاق؟

مرحباً،

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

على سبيل المثال، إذا كان مثيل Discourse الحالي يعمل على discourse.example.com، ثم حاولت تشغيل مثيل ثانٍ على discourse2.example.com، يتوقف المثيل الحالي عن العمل ولا يظهر أي شيء في عنوان URL الثاني. ومع ذلك، يمكنني ببساطة إعادة بناء المثيل الأول على discourse.example.com، ويتم استعادة المثيل الأول.

أثناء الإعداد، كانت جميع الإعدادات مماثلة للمثيل الأول باستثناء اسم المضيف لـ Discourse. هل يمكن لأي شخص شرح سبب حدوث ذلك وكيفية إنشاء مثيل جديد لـ discourse2.example.com؟

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

هل نظرت إلى

Setup Multisite Configuration with Let's Encrypt and no Reverse Proxy

4 إعجابات

أو بدلاً من ذلك، إلى

الموقع الآخر في هذه الحالة بالتحديد هو discourse

4 إعجابات

شكرًا لكم جميعًا على اقتراحاتكم. تمكّنت من إنشاء موقع Discourse ثانٍ باستخدام مزيج من هذين الموقعين:

  1. Run other websites on the same machine as Discourse (كانت إجابة @angus مفيدة بشكل خاص)
  2. https://chowdri.medium.com/how-to-install-multiple-discourse-on-one-server-150db95602bb

على الرغم من أن هذين الموقعين يقترحان عمليتين متشابهتين جدًا، فإن الموقع الثاني يُعدّ مكمّلًا أكثر ودية للمبتدئين للرابط الأول، وأوصي بشدة أي شخص يحاول القيام بنفس الشيء بقراءة كلا الموقعين أثناء إعداد نظامه.

في الوقت الحالي، يُعتبر موقع Discourse الثاني الخاص بي “غير آمن” (لأنني نسخت الشهادة من النسخة السابقة في /var/discourse/shared/standalone/ssl لتجنب خطأ “الملف غير موجود” عندما حاولت تشغيل sudo nginx -t). هل يمكن لأحد أن يخبرني بكيفية جعل موقع Discourse الثاني آمنًا عبر https (الموقع الأول لا يواجه أي مشاكل)؟ شكرًا مقدّمًا.

إعجابَين (2)

لماذا لا تجرب ذلك مع دليل @pfaffman (الذي شاركه @itsbhanusharma أعلاه)؟ سيتولى هو فقط التعامل مع الشهادات. في الواقع، اتبعت هذا الدليل عدة مرات وأنا ما زلت في دهشة من مدى بساطته للموضوع!

الحقيقة أن له عيبًا واحدًا وهو أنك ستصبح طماعًا وتشغّل مثيلًا إضافيًا لأي مهمة صغيرة… أعتقد أنني وصلت إلى 7 الآن وأحتاج إلى المزيد :grinning_face_with_smiling_eyes:

4 إعجابات

شكرًا لك على الاقتراح. سأجرب الأمر، لكنني أواجه بعض الصعوبات في الدليل:

  1. لا أستطيع العثور على كلمة مرور قاعدة البيانات (أو حتى ما الغرض منها في الملف)

  2. ملف app.yml الخاص بي لم يكن يحتوي في الأصل على قسم after_postgres، لذا أضفت قسمًا تحت hooks ليتوافق مع الأقسام الأخرى (مثل after_ssl و after_db_migrate). إذا كان هذا القسم موضعه خاطئًا، يرجى إعلامي بذلك، فأنا جديد تمامًا في التعامل مع هذا النوع من الأمور.

  3. عندما أتحقق من صحة ملف YAML على موقع http://www.yamllint.com/، أتعثر على رسالة خطأ تقول (<unknown>): did not find expected key while parsing a block mapping في السطر الذي أضفت فيه قسم after_postgres تحت قسم hooks.

إذا أمكنك توضيح الخطوات التي اتبعتها أنت يا @manuel أثناء اتباع الدليل المذكور أعلاه، فسأكون ممتنًا جدًا.

إعجابَين (2)

في الواقع، قمت دائمًا بذلك لإعداد يتكون من حاويتين، وهو يعمل بشكل جيد لهذا الغرض. يمكنك الحصول على ذلك بسهولة عن طريق تثبيت Discourse باستخدام الأمر ./discourse-setup --two-container ثم تعديل كلا الملفين web_only.yml و data.yml.

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

بخصوص خطأ الصيغة: هل استخدمت علامة تبويب للإزاحة؟ إنه انتقائي للغاية بشأن التنسيق.

إعجابَين (2)

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

إعجابَين (2)