نشر Discourse على lightsail: "تم رفض الاتصال"

أهلاً،

لقد اتبعت مؤخرًا دليل install-cloud لتثبيت Discourse على مثيل AWS Lightsail. على الرغم من اتباع التعليمات عن كثب والبدء من الصفر عدة مرات، للأسف أحصل على خطأ “connection refused” عند محاولة الوصول إلى منتداي.

الخطوات التي اتبعتها كانت:

  1. إنشاء مثيل Lightsail جديد
  2. تعيين عنوان IP ثابت
  3. فتح المنفذ 443
  4. توجيه النطاق الفرعي الخاص بي (forum.procedural.audio) إلى عنوان IP
  5. اتباع أوامر تثبيت Discourse في الدليل، بما في ذلك تقديم عنوان بريد إلكتروني لـ LETS_ENCRYPT
  6. تصفح منتداي… تم رفض الاتصال

يُخرج الأمر ./discourse-doctor أن إصدار Discourse في forum.procedural.audio هو NOT FOUND. يمكنني استقبال بريد إلكتروني اختباري بنجاح من Discourse.

لا يستقبل الأمر ping forum.procedural.audio بيانات ولكنه يجد عنوان IP الثابت الصحيح.

لاحظت الأخطاء التالية في السجلات:

$ ./launcher logs app
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
(يتكرر مرات عديدة أخرى)

لذلك يبدو أن المشكلة متعلقة بـ SSL، على الرغم من أنني لست متأكدًا من كيفية إصلاحها. في الدليل shared/standalone/ssl/ توجد أربعة ملفات:

  1. forum.procedural.audio.cer (الملف فارغ)
  2. forum.procedural.audio.key (الملف يحتوي على مفتاح)
  3. forum.procedural.audio_ecc.cer (الملف فارغ)
  4. forum.procedural.audio_ecc.key (الملف يحتوي على مفتاح)

لذا لست متأكدًا مما إذا كانت ملفات .cer الفارغة جزءًا من المشكلة. ألاحظ أيضًا، مع ذلك، أن السجلات تشير إلى أنها تبحث عن الملف في /shared/ssl/* بدلاً من /shared/standalone/ssl/*، وهذا يبدو ذا صلة أيضًا.

شكراً لمساعدتكم.

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

المشكلة هي أن مثيل Lightsail الخاص بك غير قابل للاتصال خارجيًا. هذا ما كان يخبرك به discourse-doctor - إذا قمت بفتح المنفذ 443 فقط، فهذا هو السبب على الأرجح.

لن يعمل HTTPS على 443 حتى يكون لديك شهادة. ليس لديك شهادة (وهذه الملفات الشهادات فارغة) لأن Let’s Encrypt لم يتمكن من التسجيل بسبب مشكلة الاتصال.

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

لقد تحققت للتو وهذا الاسم المضيف غير صالح. تحتاج إلى إصلاح ذلك أولاً.

cannot resolve forum.procedural.audio: Unknown host
إعجاب واحد (1)

22 و 80 منفذان مفتوحان افتراضيًا لمثيلات Lightsail. لذلك لا أعتقد أن فتح المنفذ 80 هو الحل.

عذرًا، هل تمانع في تقديم المزيد من التفاصيل؟ بأي معنى يكون اسم المضيف غير صالح؟

لا يظهر forum.procedural.audio في نظام أسماء النطاقات (DNS)، أو بعبارة أخرى، لا يحل اسم المضيف إلى عنوان IP. لقد تحققت للتو عبر CloudFlare و Google DNS، وكلاهما لا يمكنه العثور على اسم المضيف هذا. إذا لم أتمكن من حله، فلن يتمكن discourse-doctor أيضًا.

متى قمت بإنشاء سجل ‘a’ للخادم الخاص بك؟ هل تحققت من أوقات النسخ المتماثل الخاصة بهم؟

تأكد من إصلاح هذا قبل محاولة بناء الخادم مرة أخرى. يمنح Let’s Encrypt عددًا محدودًا من المحاولات للتسجيل/التجديد وعندما تصل إلى هذا الحد، لن تتمكن من الحصول على شهادة لمدة سبعة أيام.

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

لقد امتلكت النطاق في Namecheap لمدة يومين، والذي يشير إلى Route 53 (الطبقة الإضافية من التوجيه غير المباشر هي لأن Route 53 لا يدعم نطاقات .audio). سجل النطاق الرئيسي موجود منذ معظم هذين اليومين. سجل النطاق الفرعي موجود منذ حوالي ساعة.
إذا كانت هذه هي المشكلة، فأعتقد أن تشغيل ping forum.procedural.audio من نسختي سيفشل في حل عنوان IP. لكن عنوان IP يتم حله.

لا يتم حله خارجيًا، تستخدم Let’s Encrypt نظام أسماء النطاقات (DNS) للتأكد من أن الخادم هو ما يدعيه.

ping forum.procedural.audio                                                                                                               ✔  1909  10:59:47
ping: لا يمكن حل forum.procedural.audio: مضيف غير معروف

حسنًا. حسنًا، https://dnschecker.org/#A/forum.procedural.audio يُظهر أن الاسم يُحل في العديد من الأماكن، لذا ربما تكون مشكلة انتشار. عندما أطلب من 1.1.1.1 أو 8.8.8.8 البحث عنه، لا أتلقى أي رد. ومع ذلك، فإن NS-337.AWSDNS-42.COM يُرجعه، لذا قد تحتاج فقط إلى الانتظار لفترة.
ولكن discourse-setup سيحاول البحث عن العنوان ومعرفة ما إذا كان يمكنه الاتصال بنفسه. إذا فشل ذلك، فعادةً ما تكون مشكلة DNS أو أن المنافذ غير مفتوحة.

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

مرحباً،

لقد مر ما يقرب من أسبوع وما زلت غير قادر على نشر منتدى. هل لدى أي شخص أفكار إضافية؟ المنافذ 80 و 443 مفتوحة. لا أعتقد أن هذه مشكلة DNS - لا يجد discourse-doctor إصدار discourse في localhost (بالإضافة إلى forum.procedural.audio). أي مساعدة ستكون موضع تقدير.

nslookup.exe forum.procedural.audio
Server:  dns.google
Address:  8.8.8.8

*** dns.google can't find forum.procedural.audio: Server failed

إنها مشكلة DNS.

3 إعجابات

هممم https://dnschecker.org/#A/forum.procedural.audio يظهر أنه انتشر إلى 31/32 موقعًا. لم أسمع قط بسجلات DNS تستغرق أكثر من 144 ساعة للانتشار. ولكن بالتحقق الآن من https://www.nslookup.io/domains/forum.procedural.audio/dns-records/#cloudflare أرى أن Cloudflare و Google لا يمكنهما حله، على الرغم من أن الخادم الموثوق يمكنه ذلك.

لذا أعتقد أنني كنت مخطئًا ولكني لست متأكدًا مما يجب فعله حيال ذلك. لست متأكدًا لماذا لا يمكن لـ discourse-doctor العثور على إصدار discourse في localhost.

إذًا لديك مشكلة في نظام أسماء النطاقات (DNS).

وإذا كنت قد أجريت العديد من عمليات إعادة البناء، فلديك مشكلة في تحديد المعدل الخاص بـ Let’s Encrypt.

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