لقد قمت بإعداد مثيل Amazon EC2 لاستضافة Discourse، ويبدو أن كل شيء يسير على ما يرام - حتى أدخلت جميع معلوماتي في برنامج التثبيت وأُنفّذ، ومن المفترض أن تكون صورة Docker الخاصة بـ Discourse تعمل على المنفذ 80 بعد ذلك.
ولكن هذا لا يحدث.
ليس لدي أي فكرة عن السبب. الشيء الوحيد الذي تمكّنت من تشخيصه هو أنه إذا قمت بإيقاف حاوية Docker، ثم أعدت تشغيلها، فعند الانتقال إلى عنوان IP لمثيل EC2 الخاص بي، أرى شاشة خادم nginx الافتراضية. لكن بعد بضع ثوانٍ، يتوقف ذلك أيضًا.
عند التنقل إلى اسم النطاق، لا يحدث شيء. وعند التنقل إلى عنوان IP، لا يحدث شيء أيضًا.
يعمل على المنفذ 80.
عند إيقاف حاوية Docker وإعادة تشغيلها، كما ذُكر أعلاه، يمكنني الوصول إلى صفحة الويب الافتراضية لـ nginx التي تقول “يعمل بنجاح”. ثم تعود إلى عدم العمل بعد بضع ثوانٍ.
أعتقد أنني ربما غيّرت ملف /etc/hosts لتجاوز المشكلة الحقيقية، والتي كانت أن برنامج التثبيت أفاد بأن المنفذ 443 والمنفذ 80 غير قابلين للوصول باستخدام اسم المضيف الذي أستخدمه.
لقد قررت في الواقع حذف التثبيت والبدء من جديد، وهذا ما يحدث مرة أخرى. لذا، لماذا لا ننسى كل ما قلته أعلاه ونبدأ من الصفر؟
لماذا لا يمكنه الوصول إلى المنافذ 443 و 80؟
لقد قمت بإعداد مجموعة أمان EC2 الخاصة بي للسماح بكل حركة مرور HTTP و HTTPS الواردة، لذا أنا مشوش بعض الشيء هنا.
التثبيت القياسي لا يستخدم nginx المثبت على النظام، وإذا كان لديك nginx مثبت على المضيف، فلن يتمكن Discourse من الوصول إلى المنافذ 80 و 443. من خلال تثبيت nginx على النظام، فقد منعت Discourse من العمل في تكوينه القياسي.
لا علاقة لهذا بأمازون. الأمر يتعلق فقط بإدارة أنظمة Linux.
اتضح أنه لا يمكنك السماح لـ Cloudflare بتوجيه حركة المرور الخاصة بنطاقك الفرعي المخصص لـ Discourse — بل يجب عليك النقر على السحابة البرتقالية في سجل A للنطاق الفرعي لتحويلها إلى الرمادي (وضع DNS فقط) — وعندها يجب أن تتمكن تثبيتك لـ Discourse من الوصول إلى المنافذ المناسبة دون أي مشكلة.