إذًا، واجهت الخادم الرقمي من DigitalOcean الذي يستضيف موقع Discourse الخاص بي نوعًا من المشكلة، وتعمل DigitalOcean على نقل موقعي إلى خادم آخر. أنا على تواصل معهم بشأن المشكلة، لكنني أردت أن أرى ما إذا كان أي شخص في مجتمع Discourse قد مر بهذه المشكلة من قبل.
هل لدى أي شخص نصائح حول هذا الموقف؟ هل يقومون عادةً بإشعارك عند اكتمال هذه العملية؟ لم يردوا بعد على رسائل البريد الإلكتروني الخاصة بي. كان موقعي معطلًا تمامًا لبضعة أيام، وهذا ليس جيدًا لمجتمعي. لم أقم بإجراء أي تغييرات على Discourse، لذا أعرف أن المشكلة حدثت بسبب مشكلة في خادم DigitalOcean. هل هناك أي شيء محدد يجب أن أفعله من جهتي، أم يجب أن أنتظر فترة أطول؟
أوقفت droplet وأعدت تشغيله، بالإضافة إلى إعادة بناء Discourse باستخدام الأمر ./launcher rebuild app. بعد إعادة البناء، حصلت على هذه الخطأ:
Error response from daemon: driver failed programming external connectivity on endpoint app (fd1221330787160dee95f94a1256ca0dc8ddb8be2bc3c4d576ab54d3b768613a): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use.
رسالة بريد إلكتروني من DigitalOcean:
لقد حددنا مشكلة في الجهاز المادي الذي يستضيف أحد أو أكثر من Droplets الخاصة بك، والمدرجة أدناه. لتقليل الاضطراب، سنقوم بنقل Droplets إلى جهاز مادي أكثر صحة. طوال عملية النقل، لن تنجح أحداث لوحة التحكم وواجهات برمجة التطبيقات - بما في ذلك: إيقاف التشغيل، تغيير الحجم، ومحاولات تدمير Droplet - بالنسبة إلى Droplet(s) المتأثر.
لتقليل وقت التوقف، سنحاول إجراء هجرات مباشرة في جميع الحالات الممكنة. قد تؤدي الهجرة المباشرة إلى عدم وجود وقت توقف، لكن مع انخفاض طفيف في أداء إدخال/إخراج القرط وفقدان حزم لمدة ثانية أو أقل أثناء التبديل إلى المضيف المادي الجديد.
في حال عدم قدرتنا على إجراء هجرة مباشرة لـ Droplet، سنقوم بإجراء هجرة غير مباشرة، حيث سيتم إيقاف تشغيل Droplet ونقله خارج الخط أثناء النافذة الزمنية المحددة.
أعتقد أن مشاكل Digital Ocean لا علاقة لها بالموضوع، وأن لديك خادم ويب آخر مثبتًا أو يعمل على خادمك. هل يوجد خادم Apache أو Nginx مثبت؟ هل يظهر خادم ويب ما على موقعك حتى عندما لا يكون Discourse قيد التشغيل؟
لقد استخدمت أداة التثبيت التلقائي لـ Discourse من DigitalOcean عند إعداد كل شيء في البداية، وهي تستخدم Ubuntu وما يُرفق بها من حزم أخرى. لا أملك أي مواقع ويب أخرى على هذا الـ droplet. يبدو أن nginx نشط ويعمل، بينما يعيد فحص حالة Apache خطأً.
هذا ما يظهر على موقعي المعطل عند زيارته عبر متصفح Firefox:
Error 521Ray ID: 5c686964ad310d1a • 2020-08-22 00:17:35 UTC
Web server is down
Browser - Cloudflare - Host
Working - Working - Error
لقد نفذت الأمر systemctl status apache2 للتحقق مما إذا كان Apache يعمل، وقد أظهر النتيجة التالية:
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset:
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: failed (Result: exit-code) since Fri 2020-08-21 16:16:24 UTC; 7h ago
Process: 912 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILUR
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: AH0055
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: (98)Ad
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: (98)Ad
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: no lis
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: AH0001
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: Action
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: The Ap
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: apache2.se
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: apache2.se
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: Failed to
lines 1-17/17 (END)
ثم نفذت الأمر systemctl status nginx للتحقق من حالة nginx، وقد أظهر النتيجة التالية:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
Active: active (running) since Fri 2020-08-21 16:16:24 UTC; 8h ago
Docs: man:nginx(8)
Process: 972 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=
Process: 917 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process o
Main PID: 976 (nginx)
Tasks: 2 (limit: 1108)
CGroup: /system.slice/nginx.service
├─976 nginx: master process /usr/sbin/nginx -g daemon on; master_proc
└─977 nginx: worker process
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: Starting A
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: nginx.serv
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: Started A
lines 1-15/15 (END)
بالنظر إلى تلك الرسالة الإلكترونية، يبدو أنه يمكنك الانتظار قليلاً ورؤية ما سيحدث. لكنني أنصحك بالتأكد من وجود نسخة احتياطية خارج الموقع، احتياطياً!
بشكل عام، من الأفضل بكثير استخدام طريقة التثبيت الرسمية. ما لم تكن تستخدم هذه السحابة (Droplet) لأغراض أخرى بالإضافة إلى Discourse، فإن نصيحتي هي أن تستغل هذه الفرصة للبدء من جديد بسحابة جديدة وتثبيت البرنامج باستخدام التعليمات الرسمية المدعومة هنا: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub
بعد ذلك، يمكنك تنزيل نسخة احتياطية من نسختك القديمة ورفعها إلى نسختك الجديدة، وستكون جاهزًا للعمل مرة أخرى مع نسخة مدعومة رسميًا وسهلة الصيانة.