مناقشة حول مشكلة منفذ Google Cloud؟

مرحباً بالجميع! لقد حاولت عدة مرات حتى الآن تشغيل Discourse على Google Cloud. حالياً في المحاولة الثالثة لإنشاء مثيل VM (Ubuntu 18.04 minimal)، وتثبيت Discourse يدوياً عبر الطرفية. وفقاً للدليل هنا، يبدو كل شيء على ما يرام - ولكن بعد الانتهاء من تشغيل ./discourse-setup، لا يمكنني الوصول إلى الموقع.

لقد جربت أيضاً تثبيت Discourse باستخدام حلول النشر بـ “نقرة واحدة” في Google Marketplace (الحل الخاص بـ Google وحل Bitnami). عند القيام بذلك، تمكنت من الوصول إلى صفحة هبوط Discourse.

أظن أن هناك مشكلة تتعلق بـ Google والمنافذ (وهذه المشكلة تم تجنبها مع التثبيتات الجاهزة) - لكنني لا أعرف الكثير عن كل هذا لأقوم بتشخيص المشكلة بنفسي. هل لديكم أي أفكار؟

إعجابَين (2)

هل يمكن أن يكون هذا مرتبطًا بجدار الحماية؟
وفقًا لفهمي، يتطلب Google Cloud منا تحديد مربعي اختيار للسماح بالوصول العام إلى آلة افتراضية. يمكن تكوين ذلك لاحقًا إذا لزم الأمر

3 إعجابات

مرحبًا بهنو، وشكرًا على الاقتراح!

تم بالفعل وضع علامة على تلك المربعات!

لا يزال الأمر لا يعمل. أحاول عمل Ping للموقع، ويبدو كل شيء على ما يرام:

عند الدخول إلى الموقع عبر SSH وتشغيل netstat للتحقق من المنافذ، تظهر النتيجة التالية:
ports
لكنني لست على دراية كافية بأمر netstat.

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

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

حسنًا، بدأت أعتقد أن هذه هي المشكلة. بدا أن Nginx مُثبّت، لكنه لم يكن يعمل. قتلت عمليات PIDs 14311 و 14295 الخاصة بـ docker-proxy، ثم شغّلت Nginx. الآن أصبح Nginx مرتبطًا بالمنفذ 80، وعندما أزور موقعي، أرحّب بي Nginx!
الآن يجب أن أعود لتشغيل Docker/Discourse مرة أخرى.

وجدت أيضًا هذا الدليل حول تثبيت Discourse/Nginx على إصدار أقدم من Ubuntu. يبدو أنهم غيّروا منفذ Docker، من المنفذ 80 لسبب ما. ربما هناك تعارض هنا.

تمكّنت بطريقة ما من تشغيل Nginx على المنفذ 80، بينما يستمع Docker-proxy إلى المنفذ 8060 لبروتوكول http والمنفذ 9443 لبروتوكول https (كما اقترح دليل آخر). ولكن بعد تحقيق ذلك، أجد نفسي ضائعًا مرة أخرى. يبدو أن Discourse منتدى رائع، لكنه يبدو مستحيل التثبيت على Google Cloud بالنسبة للمبتدئين مثلي.

إعجابَين (2)

لا يلزمك تشغيل خادم ويب مخصص إلا إذا كنت تخطط لاستخدام الخادم لأكثر من استضافة Discourse، حيث يأتي Discourse مع خادم Nginx مدمجًا بالفعل. هل يمكنك تأكيد أن الخادم الخاص بك مُعيَّن له عنوان IP عام، وأن التكوين يسمح بالاتصالات الخارجية على المنافذ 22 و80 و443؟

راجع: VPC firewall rules  |  Cloud Next Generation Firewall  |  Google Cloud Documentation

إعجابَين (2)

نعم. تحتوي مثيلتي الافتراضية (VM) على Google على عنوان IP عام وتسمح بحركة المرور على المنافذ 22 و80 و443.

أعتقد أن هذا تم إثباته أيضًا عندما قتلت عمليات docker-proxy (على المنافذ 80 و443)، ثم شغلت Nginx (على المنفذ 80)، وتمكنت من الوصول إلى صفحة هبوط Nginx على موقعي.

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

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

إعجابَين (2)

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

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

هل يمكنني إعداد SMTP بعد اكتمال التثبيت؟

بموجب “الخطوة 11” في هذا الرابط، تمكنت من [إنشاء ملف discourse.conf (لأنه غير موجود) وتعديله]. بعد القيام بذلك، بدا أنني أستطيع إعادة تشغيل “خدمة discourse” واختبار إعدادات البريد الإلكتروني؟

هل يعني ذلك أنني لست بحاجة إلى إعادة تثبيت Discourse، صحيح؟

ومع ذلك، عند النظر في الخدمات قيد التشغيل، لا أرى أي شيء يُسمى “discourse”، رغم أن منتدى Discourse الخاص بي يعمل بوضوح ويتوفر الآن.

ألا ينبغي أن يكون Discourse ظاهرًا هنا؟ هل هناك خدمة أخرى هنا يمكنني إعادة تشغيلها، والتي ستؤدي بدورها إلى إعادة تشغيل خدمة Discourse؟

إعجابَين (2)

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

هذه هي خطوات التحضير التي أقوم بها قبل اتباع دليل التثبيت الرسمي:

  1. إعداد محرك الحوسبة للسماح بحركة مرور HTTP و HTTPS.
  2. إعداد DNS والتأكد منه.
  3. التأكد من الاتصال بـ VM الخاص بي عبر SSH.

يمكنني تأكيد أن العملية تعمل.

ملاحظة: عادةً ما أستخدم إصدار minimal من Ubuntu على Gcloud لتثبيت Discourse.

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

ألم تكن تقوم بـ تثبيت ستاندرد الرسمي لـ Discourse؟

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

هـ. غريب جداً. لكن شكراً لتأكيدك أن هذا ممكن فعلياً على Google Cloud. أعتقد أيضاً أن تثبيت Discourse يسير بشكل جيد، وأن المشكلة تكمن في الـ VM/المنافذ. سأحاول مرة رابعة غداً، رغم أنني قمت بخطوات التحضير هذه في كل مرة. شكراً لك، بهانو.

@pfaffman لقد فعلتُ ذلك.

إعجابَين (2)

أيضًا، ليس حقًا “محرك الكمبيوتر” الذي تسمح له بحركة مرور HTTP/HTTPS، أليس كذلك؟ بل هي “مثيل الآلة الافتراضية”؟

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

محرك الحوسبة هو المصطلح الذي تستخدمه جوجل للإشارة إلى الآلة الافتراضية (VM) حسب علمي.

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

تفحص أداة إعداد Discourse المنافذ عند تشغيلها. هل تمر هذه الاختبارات بنجاح؟

إعجابَين (2)

سأقوم بالتحقق من ذلك الآن. لقد أزلت فقط النسخ القديمة والمشروع، وبدأت مشروعًا ونسخة جديدة على Google Cloud. سأحاول الآن تثبيت Discourse وسأبلغك بالمنافذ التي تم فحصها!

إعجابَين (2)

حسنًا، بعد بضعة أيام، لقد يعمل الآن!

أعدت نفس العملية مرة أخرى، لكنني كنت أكثر حذرًا في كل خطوة هذه المرة.
حذفت مثيلتي ومشروعي على Google Cloud، وابدأت بمشروع جديد.

ثم أنشأت مشروعًا جديدًا ومثيلًا جديدًا. نظام تشغيل Ubuntu 18.04 LTS المصغر. تم تمكين HTTP/HTTPS. قبل اتباع الدليل الرسمي المذكور أعلاه، قمت بما قاله بهانو واختبرت الاتصال. اتبعت “دليل الترحيب” الخاص بـ Google Cloud والذي يتضمن أيضًا تجربة سكريبت خادم Python على المنفذ 80 وما إلى ذلك.

خلال عملية “الدليل الرسمي”، كنت حذرًا جدًا في إعداد SMTP. لسبب ما، قررت عدم استخدام Mailgun، بل انتهيت باستخدام Sendinblue. والذي يعمل بشكل ممتاز!

لا أعرف حقًا ما هو الفرق هذه المرة، لكنه يعمل الآن. شكرًا لك على المناقشة معي في الموضوع!

6 إعجابات

لا أعرف لماذا لا يمكنني تعديل منشوري السابق، لكن قد يقوم المشرف بدمجهما.
أردت فقط أن أضيف أنني أعتقد أن مشكلتي والحل ربما كانا ناتجين عن أنني كنت متحمسًا أكثر من اللازم.

بسبب تثبيت إضافة معيبة، اضطرتُ مؤخرًا إلى حذف وإعادة تثبيت مثيل Discourse الخاص بي. عند بدء تشغيل هذا المثيل الجديد، حصلتُ على عنوان IP جديد. لذا ذهبتُ إلى خدمة الاستضافة الخاصة بي، وقمتُ بتحديث مؤشر A/نظام أسماء النطاقات (DNS)، الذي يوجه النطاق الفرعي discourse.mydomain.com إلى عنوان IP لمثيل Google Cloud الخاص بي، ثم عدتُ إلى واجهة SSH الخاصة بـ Google Cloud لتشغيل الإعداد.

عند تشغيل ./discourse-setup لأول مرة، يتحقق الإعداد من القدرة على الربط بالمنافذ 80 و443. ولكن لسبب ما، رفض الربط بالمنافذ 80 و443 مرة أخرى. بحثتُ في نظام أسماء النطاقات عبر who.is، فتم حل النطاق الفرعي بنجاح إلى عنوان IP وغيره، ومع ذلك لم ينجح الأمر. جربتُ تشغيل ./discourse-setup ثلاث مرات دون جدوى. تحققتُ باستخدام netstat -ltnpu، ولم أجد شيئًا خاصًا. انتظرتُ خمس دقائق إضافية، ثم شغّلته رابع مرة، وعمل الآن.

إعجابَين (2)

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

ربما لا تكون خدمة SMTP ضرورية، لكن يبدو أن إعدادات “Egress” للمنطقتين 80 و443 كانت مطلوبة.

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

أعتقد أنه لا حاجة لتكوين أي قواعد صادرة، حيث أن جميع المنافذ مفتوحة افتراضيًا ما عدا المنفذ 25 الذي يكون محجوبًا دائمًا.

3 إعجابات