عادةً ما ينتج فقدان الجلسة بعد تغيير الوكيل أو نظام أسماء النطاقات عن عدم تطابق بين أصل عنوان URL الذي يستخدمه العميل والمسار الذي يراه Home Assistant الآن، وليس عن تلف حسابات المستخدمين.
قد يحتفظ المتصفح بملفات تعريف الارتباط وحالة الواجهة الأمامية الخاصة باسم المضيف القديم، بينما يحل الهاتف العنوان الجديد، أو قد يعرض الوكيل صفحة تسجيل الدخول لكنه يفشل في اتصال WebSocket الموثَّق. ابدأ بنافذة متصفح خاصة واحدة واختبار مباشر عبر الشبكة المحلية، وسجّل المخطط واسم المضيف بدقة لكل نتيجة، وتجنب حذف جميع الجلسات إلى أن تحدد الطبقة المتسببة في الفشل.
افصل حالة عميل واحد عن فشل المسار المشترك
افتح Home Assistant في نافذة خاصة باستخدام عنوان URL النهائي المقصود، ثم قارنه بالمتصفح المتأثر وتطبيق الهاتف. سجّل ما إذا اكتمل تسجيل الدخول، وما إذا ظلت لوحة المعلومات متصلة لمدة خمس دقائق، وما إذا أدى تحديث الصفحة إلى الحفاظ على الجلسة. تختبر هذه المقارنة القابلة للتراجع حالة العميل القديمة من دون تغيير الخادم.
قد يعرض الوكيل صفحة تسجيل الدخول بينما تبلغ الواجهة الأمامية الموثَّقة لاحقًا عن تعذر الاتصال. يوضح هذا الفشل في الاتصال بعد نجاح تسجيل الدخول سبب عدم كون عرض HTML دليلًا على أن مسار الجلسة بأكمله يعمل.
إذا كان المتصفح القديم وحده يفشل بينما تظل النافذة الخاصة مستقرة، فأزل بيانات الموقع الخاصة بأصلي Home Assistant القديم والجديد على ذلك العميل، ثم سجّل الدخول مجددًا. وإذا فشل كل عميل عند استخدام عنوان URL الخاص بالوكيل بينما يعمل الوصول المباشر عبر الشبكة المحلية، فاحتفظ بحالة العملاء وانتقل إلى مسار الوكيل.
تحقق من WebSocket ومعالجة الأصل المُمرَّر
افحص عرض الشبكة في المتصفح أو سجل الوكيل أثناء تسجيل الدخول، وراقب ترقية WebSocket، وحالة الاتصال، وتوقيت قطع الاتصال، والمخطط المُمرَّر، والمضيف المُمرَّر، وعنوان العميل. يتمثل الفرق المفيد بين صفحة HTTP تُحمَّل وقناة موثَّقة مستمرة تُرقّى وتظل مفتوحة.
تحدد استكشافات أخطاء الوكيل العكسي في Home Assistant مرارًا أن تمرير WebSocket متطلب منفصل عن توكيل HTTP العادي. استخدم هذه الآلية لتفسير مسار الترقية فقط، وليس باعتبارها دليلًا على ملاءمة إعداد Nginx واحد لكل وكيل.
إذا فشلت الترقية، فصحح فقط مسار الوكيل أو ترويسات الترقية أو المخطط المُمرَّر أو حدود الوكيل الموثوق التي تُظهر السجلات أنها خاطئة. وإذا نجحت وظلت متصلة، فاترك الوكيل دون تغيير وابحث بدلًا من ذلك في نظام أسماء النطاقات وحالة أصل العميل.
قارن إجابات نظام أسماء النطاقات وعناوين URL النهائية
حلّل اسم مضيف Home Assistant من العميل المتأثر، والعميل العامل، ومضيف الوكيل. قارن إجابات IPv4 وIPv6، وإجابات نظام أسماء النطاقات المنقسم، واسم الشهادة، ووجهة إعادة التوجيه، وعنوان URL المخزن في التطبيق المصاحب. لا يكتمل تغيير نظام أسماء النطاقات إلا عندما تصل العملاء إلى نقطة النهاية المقصودة باستخدام اسم المضيف الأساسي نفسه.
توضّح نموذج إمكانية الوصول إلى Home Assistant العلاقة الأوسع بين الاكتشاف وحل الأسماء والتوجيه. استخدمه للفصل بين إجابة نظام أسماء نطاقات قديمة وفشل على مستوى الجلسة.
إذا حلّت العملاء نقاط نهاية مختلفة، فانتظر مدة TTL الموثقة أو امسح ذاكرة التخزين المؤقت للمحلل على العميل المتأثر والمحلل المحلي فقط. لا تنشئ أسماء مضيفين مؤقتة متنافسة، لأن كل أصل إضافي ينشئ حدًا آخر لملفات تعريف الارتباط وإعادة التوجيه.
أعد اختبار مسار الجلسة الأصلي وصعّد المشكلة بشكل محدود
سجّل الدخول عبر عنوان URL العام أو الخاص النهائي، وأبقِ لوحة معلومات مباشرة مفتوحة، وأعد تحميل عرض فرعي، وبدّل الشبكات مرة واحدة إذا كان الوصول عن بُعد جزءًا من التصميم، ثم كرر الاختبار بعد إعادة تشغيل أحد العملاء. يتطلب النجاح استخدام عنوان URL الأساسي نفسه، واستقرار WebSocket، والحفاظ على الجلسة خلال المُحفّز الأصلي.
إذا نجح العميل النظيف بينما ظل أحد العملاء الحاليين يفشل، فأصلح ملف تعريف ذلك العميل أو اتصال التطبيق فقط. وإذا فشلت جميع عملاء الوكيل مع ظهور الدليل نفسه على فشل الترقية أو إعادة التوجيه، فتراجع عن آخر تغيير في الوكيل أو نظام أسماء النطاقات واحتفظ بالسجلات قبل تجربة تغيير آخر.
عند التصعيد، أرفق فئة عنوان URL المتسبب في الفشل بدقة، وإجابات نظام أسماء النطاقات، ورموز حالة الوكيل، ونتيجة WebSocket، والطوابع الزمنية، ومقارنة العملاء. توقف عندما يحتفظ عميلان مختلفان بالجلسات بعد التحديث وإعادة الاتصال؛ فالتغييرات الإضافية في ملفات تعريف الارتباط أو الوكيل ستضيف مخاطر دون قيمة تشخيصية.
الدعم والنصائح
المزيد للقراءة

كيفية تحسين اتصالات قاعدة بيانات Immich للحاويات المتزامنة
لا ترفع max_connections أولًا. قِس جلسات Immich، واجمع إجمالي طلبات كل حاوية، وحافظ على هامش احتياطي للمسؤول، واضبط الاختناق المثبت فقط.

كيفية منع تكرار المهام أو عمليات الاستيراد في Immich
افصل المهام المتكررة عن الأصول المكررة. استخدم مسارًا أساسيًا واحدًا للإدخال، وتحكّم في عمليات إعادة المحاولة وتغييرات المسارات، ثم اختبر إعادة الإدخال على مجموعة...

كيفية إصلاح Immich بعد امتلاء وحدة تخزين قاعدة البيانات الخاصة به
لا تحذف سجلات WAL الخاصة بـ PostgreSQL لتحرير المساحة مطلقًا. أوقف عمليات الكتابة في Immich، وحافظ على حالة قاعدة البيانات، وأضف سعة تخزين آمنة،...

