عرض صفحة "تحت الصيانة" باستخدام nginx في تطبيق "launcher rebuild app"؟

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

في الواقع، ربما يكون الحل الأسهل هو مجرد وجود حاوية nginx ثانية مع رسالة “سنعود قريبًا” تقوم بتشغيلها يدويًا أثناء إجراء ترقية، مثل

./launcher stop app
docker run nginx --name back-soon # والمزيد من الأشياء لرؤية أنه تم تقديم صفحة
./launcher bootstrap app
./launcher destroy app
docker stop back-soon
./launcher start app

ولكن بعد ذلك يتعين عليك الحصول على شهادة والحفاظ على تحديث الشهادة لحاوية back-soon، وهو أمر معقد.

تحرير: هذا هو الموضوع الرسمي لهذه المناقشة Add an offline page to display when Discourse is rebuilding or starting up - #83 by amotl