خطأ 502 Bad Gateway بعد التحديث إلى آخر إصدار

بعد التحديث إلى أحدث إصدار من Discourse، نواجه الآن مشكلة غريبة مع nginx تسبب خطأ 502.

يحصل بعض المستخدمين على خطأ 502 عند النشر، والبعض الآخر لا يحصل عليه. بعض الملفات الشخصية تسبب خطأ 502، والبعض الآخر لا.

استخدام وحدة المعالجة المركزية (CPU) يتراوح بين 10% إلى 25%، واستخدام ذاكرة الوصول العشوائي (RAM) حوالي 20% أيضًا.

حاولت تعطيل الإضافات الخمسة الخاصة بنا، وكانت النتيجة نفسها.

ما هي السجلات التي يجب أن أطلع عليها لمعرفة ما الذي يسبب هذه الأخطاء 502؟

بالنظر إلى /var/log/nginx/error.log، يبدو أنني أحصل عشوائيًا على الكثير من هذه، مما ينتج عنه خطأ 502 على ما أعتقد.

هل هو مجرد انتهاء مهلة أم ماذا؟

2025/04/29 18:11:50 [error] 617#617: *419 upstream prematurely closed connection while reading response header from upstream, client: <IP>, server: _, request: "POST /posts HTTP/2.0", upstream: "http://127.0.0.1:3000/posts", host: "forum.domain.com", referrer: "https://forum.domain.com/"

ما هو الإصدار السابق للتحديث؟

قديم جداً، مثل سنة أو أكثر. هل يوجد سجل في مكان ما يمكنني رؤية ما قمت بالترقية منه؟

وأيضًا أحصل على بعض هذه الأخطاء

*2 connect() failed (111: Connection refused) while connecting to upstream,
...
upstream: "http://127.0.0.1:3000/message-bus/92fd28cbf742...

يبدو الأمر عشوائيًا، فجأة يصبح كل شيء سريعًا ويمكنني النشر مرة أخرى، ثم يصبح بطيئًا وتبدأ أخطاء 502 في الظهور مرة أخرى.

الاطلاع على سجلات postgres/current

2025-04-29 18:48:24.709 UTC [1746] discourse@discourse سجل الدخول: المدة: 606789.911 مللي ثانية  تنفيذ UNC غير معرف: SELECT COUNT(*) FROM "posts" WHERE "posts"."deleted_at" IS NULL

المدة: 606789.911 مللي ثانية

لدينا الكثير من المنشورات وقليل من المستخدمين.. لماذا يستغرق هذا 600 ألف مللي ثانية؟

هل يمكن أن تكون هناك مشاكل في الفهرسة أو ما شابه، مما يجعل الاستعلامات بطيئة؟

لقد اخترت جدول discourse في postgres وقمت بتنفيذ الأمر REINDEX DATABASE discourse؛ على أمل أن يؤدي ذلك إلى تسريع الأمور.
أفترض أن الأمر سيستغرق وقتًا طويلاً جدًا.

هل اتبعت النصيحة في تحديث PostgreSQL 15؟ قد تحتاج أيضًا إلى تفريغ قاعدة البيانات.

لم أفعل، لدي مجلد postgres_data_old (وإن كان في دليل مختلف عن ذلك في المنشور).

لكن بعد ذلك يقول المنشور؛

“إذا كنت تقوم بإعداد باستخدام حاوية بيانات مخصصة”، وأفترض أن هذا يعني أن بوستجري يعمل في حاوية Docker مخصصة؟

نحن نعمل في نفس المثيل للمنتدى. لذلك لست متأكدًا من كيفية التقدم من هنا، لا يبدو أن هناك شرط “إذا لم يكن كذلك”؟

هل وجود المجلد يعني أن التحويل كان ناجحًا أم لا؟

يمكنك التحقق من إصدار بوستجريس في /var/discourse/shared/standalone/postgres_data/PG_VERSION – إذا قمت بتحديث عن طريق سطر الأوامر، فمن المحتمل أنه قام بالترقية ولم تلاحظ ذلك (ولكن كان عليك تشغيل إعادة البناء مرتين). إذا قمت بالترقية من خلال الواجهة الإلكترونية، فمن الأفضل أن تقوم بإعادة البناء عبر سطر الأوامر إذا كانت نظام التشغيل ودوكر لديك نسخ حديثة.

الإصدار هو 15.

يبدو أن الأمور أصبحت أفضل بكثير بعد أن قمت بتشغيل أمر التفريغ.

يعمل النشر بشكل جيد ويبدو أنه سريع، ولكن عندما يحاول الإداري النقر على ملفات تعريف المستخدمين، والدخول إلى ملفاتهم الشخصية، لا تزال تظهر خطأ 502، ويبدو أنها تتوقف عند الوقت المحدد؟

هل هناك شيء يمكنني القيام به لتسريع تلك الجزء من قاعدة البيانات؟

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.