Cool good to know, thanks for your feedback
The first post says this
Is this the only way to do it? We don’t have nginx running outside docker
Cool good to know, thanks for your feedback
The first post says this
Is this the only way to do it? We don’t have nginx running outside docker
Yes, that’s the only way. The idea is to install a webserver (nginx recommended) to serve the request, if Discourse is up it routes it there. If not it does something else. All the installation process is explained step by step.
مرحبًا،
شكرًا لك على هذا الحل، @fefrei! لقد قمنا بتطبيقه على https://community.hiveeyes.org/ ويعمل بشكل ممتاز.
ومع ذلك، نود الإشارة إلى السؤال ذي الصلة الذي طرحه @mlinksva على Site maintenance mode during rebuilds? هنا، حيث أن هذا الأمر يلامس همومنا أيضًا ولم يتم حله بعد عبر حل /errorpages. يتعلق الأمر بتحسين النص العام “عذرًا، لم نتمكن من تحميل هذا الموضوع، ربما بسبب مشكلة في الاتصال”. سنحاول توضيح ذلك بمزيد من التفصيل.
discourse_offline.htmlهذا مثالي عندما يزور المستخدمون الموقع لأول مرة.
لكن عند التصفح داخل Discourse، سيظهر لك رسالة مثل
دون الكشف عن أي شيء حول السبب.
وبما أننا نعرفك بالفعل، فغالبًا ما تكون هناك ميزة تخصيص تسمح بتغيير هذا النص، أليس كذلك؟ ربما فاتنا ذلك. كما أننا لم نفحص بعد ما إذا كانت الميزة المسؤول » النسخ الاحتياطي » تمكين وضع القراءة فقط ستحل هذه المشكلة بالفعل كما هو موضح في Maintenance Mode?.
ومع ذلك، بدا لنا من المنطقي طرح هذا الموضوع هنا مرة أخرى ونأمل ألا تمانع لو كان ذلك غير لائق.
مع أطيب التحيات،
أندرياس.
ملاحظة: @staff: بما أن هذه المناقشة خرجت عن السيطرة إلى حد ما فيما يتعلق بتفاصيل إعدادات Nginx أو خادم الويب المناسبة، أود اقتراح إعادة هيكلة شاملة من خلال تقسيم هذه المنشورات إلى موضوع يحمل اسمًا مناسبًا مثل “إعداد خادم الويب لصفحة عدم الاتصال”. أنا متأكد من أنك ستجد عنوانًا جيدًا. شكرًا مسبقًا إذا أعجبك هذا الاقتراح ووجدته يستحق المتابعة.
الآن، نشعر في الواقع بالغباء بعد اكتشافه فورًا كنص موقع قابل للتخصيص:
لقد قمنا بتغيير النص الافتراضي js.topic.server_error.description ليصبح:
شكرًا لاستماعكم ;].
همم. نحن غير متأكدين مما إذا كان تغيير هذا النص يعمل فعليًا بالنسبة لنا. هل يجب أن نأخذ في الاعتبار شيئًا خاصًا هنا عند تعديل هذا العنصر؟
أيضًا، نود أن نذكر أنه خلال نطاق زمني محدد بينما كان الموقع معطلاً، كان يعرض رسالة مختلفة مثل
هل لديك فكرة عن كيفية قدرتنا على تغيير ذلك أيضًا؟
أنا أستخدم ذلك، لكنني أريد صفحة ويب مخصصة تعمل دون اتصال بالإنترنت، وأنا غير قادر على تحقيق ذلك.
دليل رائع.
لكن لو كنت قد ذكرت بعض الأوامر لأتمتة تجديد هذه الشهادة أيضًا لكان الدليل مكتملاً.
لأنني رأيت الرابط المذكور هنا، لكنه يذكر فقط كيفية تثبيت الشهادة من جديد أو تجديدها يدويًا.
ولكنني لم أجد إرشادات حول “التجديد التلقائي” لها.
شكرًا لك.
نقطة جيدة! قمت بتحديث هذا القسم أعلاه في المنشور الأصلي ![]()
هل لاحظ أي شخص آخر ظهور خطأ 500 عام أكثر عند حدوث الترقية؟ ربما صادفتها في وقت غير مناسب؟
عند إيقاف الحاوية أثناء إعادة البناء، لا توجد أي عملية نشطة لتقديم خطأ 500.
هل جرب أحدكم استخدام حاوية Docker أخرى لذلك لتجنب كل هذه الخطوات اليدوية، كما اقُترح في البداية؟
نعم، فعل الكثيرون ذلك. راجع Move from standalone container to separate web and data containers. يرجى ملاحظة أن استخدام حاويات منفصلة يتطلب إعدادًا أكثر تعقيدًا، كما أن العديد من الأدلة هنا على Meta تفترض تثبيتًا بحاوية واحدة (مستقلة). قبل الانتقال إلى حاويات منفصلة، تأكد من فهمك لوظيفة كل من الحاويتين، وكيف ستتعامل معهما في المستقبل. أهم نقطة: لن يكون app هدفًا صالحًا بعد الآن لأمر ./launcher.
هه، لا يزال هذا الموضوع يذكر “nginx في المقدمة” لسبب ما في منشورين…
بالمناسبة، ما أريده فعليًا هو:
لذا، كما أفهم الأمر، أحتاج فقط إلى معرفة كيفية القيام بذلك في حاوية الويب فقط ![]()
الآن أنا مرتبك.
لا يتطلب أي من هذين الهدفين إعداد حاوية منفصلة. هل تبحث عن تكوين كلتا الخطوتين المذكورتين أعلاه، وفي الوقت نفسه تبحث عن حاويات منفصلة؟ أم أنك كنت تفكر في حاويات منفصلة معتقدًا أنها ضرورية لإكمال ما سبق؟
كما أفهم، لا يمكن أن يكون التعامل مع صفحة إعادة البناء (offline) في نفس الحاوية، لأنها لن تكون قيد التشغيل. لذا، فإن الحل المقترح في الموضوع الحالي هو إضافة nginx في المقدمة. ولكن كما تم مناقشته في هذا الموضوع، يتطلب ذلك العديد من الخطوات اليدوية ويعتمد على نظام التشغيل، لذلك اعتقدت أن استخدام حاوية Docker أخرى لهذا الـ nginx الأمامي سيكون أكثر موثوقية وأسهل في الصيانة.
آه، الآن فهمت. في هذه الحالة، تجاهل الموضوع الذي ربطت به سابقًا. ذلك الموضوع يناقش فصل خادم الويب الخاص بـ Discourse عن قاعدة البيانات. وهذا غير مطلوب هنا.
تثبيت Nginx في حاوية Docker، بدلاً من تثبيته مباشرة على نظام التشغيل، ممكن بالتأكيد، لكنني لا أعرف أي أدلة مخصصة لـ Discourse للقيام بذلك. إذا سلكتم هذا المسار، فتأكدوا من فهمكم لبداية هذا الموضوع (التغييرات الضرورية لإنشاء الصفحة غير المتصلة وتثبيت وكيل nginx أمامه)، وأنكم متمكنون من كيفية عمل Docker، خاصةً في تكوين الشبكات بين حاويتين Docker. لاحظوا أيضًا أننا قد نكون محدودين في المساعدة التي يمكننا تقديمها، حيث أن هذا ليس شيئًا لدينا خبرة في تنفيذه.
لقد أدركت أيضًا أن هذا لم يعد يعمل.
كانت قد طبقت نهج @fefrei في أوائل نوفمبر، وكان يعمل بالتأكيد في ذلك الوقت. ربما يكون السبب في أنني كنت أوقف الحاوية يدويًا وأقوم بسحب git بدلاً من استخدام /admin/upgrade.
تم تقسيم 4 مشاركات إلى موضوع جديد: إضافة دعم لصفحة غير متصلة بالإنترنت بشكل أصلي أثناء إعادة البناء
لقد قمنا بنفس الشيء مؤخرًا وتم تشغيل صفحة عدم الاتصال بنجاح.
في الوقت الحالي، قمنا مؤخرًا بالترقية عبر الإنترنت من خلال /admin/upgrade ووجدنا أن Discourse لم يذهب إلى وضع عدم الاتصال على الإطلاق! بغض النظر عما إذا كان هذا قد تحسن مؤخرًا أم لا، أو ما إذا كنا محظوظين هذه المرة، فمن الرائع رؤية ترقية عبر الإنترنت تحدث دون تجربة أي سلوك توقف كبير على الإطلاق.
يجب ألا يتوقف Discourse عن العمل أبدًا عند تشغيل التحديثات عبر Docker Manager (/admin/upgrade). هل يتوقف عادةً عن العمل بالنسبة لك؟ إذا كان الأمر كذلك، يجب أن نبدأ موضوع دعم # حول ذلك.