تثبيت Docker لا يعمل مع وكيل Cloudflare

لقد قمت بإعداد مثيل Amazon EC2 لاستضافة Discourse، ويبدو أن كل شيء يسير على ما يرام - حتى أدخلت جميع معلوماتي في برنامج التثبيت وأُنفّذ، ومن المفترض أن تكون صورة Docker الخاصة بـ Discourse تعمل على المنفذ 80 بعد ذلك.

ولكن هذا لا يحدث.

ليس لدي أي فكرة عن السبب. الشيء الوحيد الذي تمكّنت من تشخيصه هو أنه إذا قمت بإيقاف حاوية Docker، ثم أعدت تشغيلها، فعند الانتقال إلى عنوان IP لمثيل EC2 الخاص بي، أرى شاشة خادم nginx الافتراضية. لكن بعد بضع ثوانٍ، يتوقف ذلك أيضًا.

لقد استخدمت تثبيت Docker كما هو موصى به.

عند التنقل إلى اسم النطاق، لا يحدث شيء. وعند التنقل إلى عنوان IP، لا يحدث شيء أيضًا.

يعمل على المنفذ 80.

عند إيقاف حاوية Docker وإعادة تشغيلها، كما ذُكر أعلاه، يمكنني الوصول إلى صفحة الويب الافتراضية لـ nginx التي تقول “يعمل بنجاح”. ثم تعود إلى عدم العمل بعد بضع ثوانٍ.

ما الذي يحدث هنا؟ هذا محبط للغاية.

كيف يمكنني عرض سجلات الأخطاء لهذا؟

ما هو التوزيع الذي تعمل عليه؟ خادم Ubuntu القياسي لا يأتي مع nginx، لذا ما لم تقم بتثبيته يدويًا، فلا يجب أن ترى هذه الصفحة أبدًا.

إذا كان nginx يعمل على المضيف، فسيؤدي ذلك بالتأكيد إلى تعطيل التثبيت وجعله يتصرف بشكل خاطئ.

مرحبًا رايفال، شكرًا لك على ردك.

أعتقد أنني ربما غيّرت ملف /etc/hosts لتجاوز المشكلة الحقيقية، والتي كانت أن برنامج التثبيت أفاد بأن المنفذ 443 والمنفذ 80 غير قابلين للوصول باستخدام اسم المضيف الذي أستخدمه.

لقد قررت في الواقع حذف التثبيت والبدء من جديد، وهذا ما يحدث مرة أخرى. لذا، لماذا لا ننسى كل ما قلته أعلاه ونبدأ من الصفر؟

لماذا لا يمكنه الوصول إلى المنافذ 443 و 80؟

لقد قمت بإعداد مجموعة أمان EC2 الخاصة بي للسماح بكل حركة مرور HTTP و HTTPS الواردة، لذا أنا مشوش بعض الشيء هنا.

التثبيت القياسي لا يستخدم nginx المثبت على النظام، وإذا كان لديك nginx مثبت على المضيف، فلن يتمكن Discourse من الوصول إلى المنافذ 80 و 443. من خلال تثبيت nginx على النظام، فقد منعت Discourse من العمل في تكوينه القياسي.

لا علاقة لهذا بأمازون. الأمر يتعلق فقط بإدارة أنظمة Linux.

(قد يكون من المناسب تثبيت nginx على النظام لـ https://meta.discourse.org/t/setting-up-offline-page/81462، لكن هذا يتطلب فهم كيفية عمل المنافذ في Linux. :smiling_face: لذا لا تبدأ من هناك إذا لم يكن الوضع الحالي واضحًا بالنسبة لك!)

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

كما قلت، تجاهل ذلك.

لقد عرفت الحل.

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

شكرًا لك!

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