منع انتهاء جلسات تحرير التعليمات البرمجية بعد 10 دقائق
تتبع انقطاع اتصال CODE لمدة 10 دقائق إلى الوكيل أو موازن التحميل أو مسار WebSocket، ثم قم بتصحيح المهلة الزمنية وتحقق من بقاء الجلسة متصلة.
إذا انقطع اتصال مستند CODE بشكل متكرر كل 10 دقائق تقريبًا، فافحص مسار WebSocket عبر كل خادم وكيل عكسي أو موازن تحميل أولًا. يُعدّ انقطاع الاتصال لمدة 600 ثانية مؤشرًا شائعًا على وجود مشكلة في الإعدادات، ولكن التوقيت وحده لا يُثبت مسؤولية الخادم الوكيل؛ لذا تحقق من المكون الذي يُغلق الاتصال قبل تغيير الإعدادات. في معظم عمليات النشر، يتمثل الحل العملي في الإبقاء على ترقية Collabora WebSocket وتعيين مهلات القراءة والإرسال للخادم الوكيل لتكون أطول من أطول جلسة تحرير متوقعة.
يستخدم Collabora Online اتصالاً عبر المتصفح بخادم CODE، بينما يعتمد تكامل المستندات أيضًا على اتصال WOPI مع المضيف، مثل Nextcloud. توضح إرشادات Collabora الخاصة بالخادم الوكيل العكسي وأمثلة Office الحالية في Nextcloud مسار WebSocket منفصل لجلسات المستندات. في حال غياب هذا المسار، أو إرساله إلى خادم خاطئ، أو خضوعه لمهلة انتهاء الخمول، قد يفقد المحرر اتصاله المباشر بينما تظل الصفحة نفسها متاحة.
هذا شرط معماري مُثبت. لا يعني هذا أن كل عطل يستمر لعشر دقائق له نفس السبب: فقد يفرض مُوازن أحمال السحابة، أو وحدة تحكم الدخول، أو جدار الحماية، أو شبكة VPN، أو أي خادم وكيل آخر، حدوده الخاصة. اعتبر الفترة الزمنية المتكررة مؤشرًا، ثم تحقق من سجلات الوصول والأخطاء لحظة حدوث العطل.
/ws. /cool/لاحظ حالته، وأغلق الكود إذا أبلغ المتصفح عن حالة.إذا انتهى اتصال WebSocket عند نفس عتبة الـ 600 ثانية المُحددة، فقم بإصلاح الخادم الوكيل أو الوسيط المسؤول عن هذه العتبة. أما إذا انتهى عند فترة زمنية أخرى، أو أظهرت السجلات خطأً في WOPI أو خطأً في الخادم، فاتبع هذه الأدلة. توصي وثائق استكشاف الأخطاء وإصلاحها في Nextcloud تحديدًا بفحص الاتصال في كلا الاتجاهين ومراجعة سجلات كل من Nextcloud وCollabora.
قبل تعديل ملف البروكسي، حدد المضيف الظاهري النشط وبروتوكول المصدر الفعلي ومنفذ CODE. أنشئ نسخة احتياطية من الإعدادات وتحقق من صحة الصيغة قبل إعادة التحميل. يوضح المثال أدناه سلوك WebSocket المطلوب لبروكسي عكسي NGINX؛ وهو ليس مضيفًا ظاهريًا كاملًا لـ Collabora. ادمجه في الإعدادات الرسمية لنشرك، مع الحفاظ على كتل الموقع الأخرى، وإعدادات TLS، ومعالجة URI، وقواعد الأمان.
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
location ~ ^/cool/(.*)/ws$ {
proxy_pass https://127.0.0.1:9980/cool/$1/ws;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
}
تسمح رؤوس UpgradeHTTP Connectionهذه بتحويل طلب HTTP إلى WebSocket. تمنع حدود القراءة والإرسال الأطول هذا الخادم الوكيل من إغلاق اتصال صامت بعد فترة افتراضية قصيرة؛ فهي ليست أمرًا لإبقاء الجلسة مفتوحة إلى الأبد. اضبط عنوان المصدر والتحقق من TLS ليتوافق مع إعداداتك، ولا تعطل عمليات التحقق من الشهادات لمجرد تشغيل المثال.
تُعدّ أمثلة بروكسي Collabora الرسمية المرجع الأمثل لإعدادات التوجيه الكاملة والمناسبة لكل إصدار. تتضمن إرشاداتها الحالية مهلات بروكسي طويلة؛ كما يحتوي مثال Docker الحالي في Nextcloud على /cool/(.*)/wsتعيين WebSocket مخصص. استخدم هذه الأمثلة الكاملة بدلاً من استبدال مضيفك الافتراضي بالكامل بهذا المقتطف الصغير.
بالنسبة لـ NGINX، قم بتشغيل nginx -tالاختبار وإعادة تحميله فقط بعد نجاحه. أما بالنسبة لـ Apache، فاستخدم اختبار التكوين الخاص به قبل إعادة التحميل. إذا كان CODE يعمل خلف بوابة Kubernetes أو موازن تحميل سحابي، فلن يؤدي تغيير NGINX على مضيف CODE إلى حل مشكلة مهلة الاتصال الأقصر عند بوابة الدخول أو حافة الموفر؛ لذا، قم بتحديث المكون الذي تحدده السجلات.
قد يمرّ تدفق بيانات WebSocket عبر أكثر من وسيط: المتصفح، وشبكة توصيل المحتوى (CDN)، وجدار الحماية، وموازن الأحمال الخارجي، ونقطة الدخول، وخادم الوكيل، ثمّ الكود. لا يمكن لمهلة طويلة في طبقة ما أن تتجاوز مهلة أقصر في الطبقة التالية. قارن مهلة الخمول أو مهلة الاتصال لكل طبقة، واجعل حدّ مسار WebSocket أطول من فترة التحرير المتوقعة في حالة الخمول، ضمن حدود وسياسة تلك المنصة.
لا تخلط بين إعداد "إلغاء تحميل المستند في حالة الخمول" ومهلة الشبكة للخادم الوكيل. يتحكم الإعداد الأول في وقت إلغاء تحميل عملية مستند غير مستخدمة، ولا يُصلح اتصال WebSocket الذي أغلقه وسيط بالفعل. وبالمثل، فإن تحديد مهلة طويلة جدًا لا يُصلح مسار ترقية خاطئ، أو حركة مرور محظورة، أو تكوين HTTP/HTTPS غير متوافق، أو تعطل عملية CODE. بعد كل تغيير، تأكد من تغير وقت الإغلاق أو اختفاء السبب المُسجل؛ فهذا يُضيّق نطاق الطبقة المسؤولة دون إدخال تغييرات غير ذات صلة.
تأكد من أن متصفح المستخدم وخادم WOPI يمكنهما الوصول إلى خدمة CODE عبر HTTPS، وأن خدمة CODE قادرة على الوصول إلى خادم WOPI. بالنسبة لتكامل Nextcloud، يُوصي دليل استكشاف الأخطاء وإصلاحها بفحص نقاط النهاية العامة /hosting/capabilitiesمن /hosting/discoveryمتصفح باستخدام أداة معينة curl، ثم فحص نقطة نهاية حالة Nextcloud من خادم CODE. تُؤكد هذه الفحوصات إمكانية الوصول الأساسية، لكنها لا تُثبت وحدها استمرار اتصال WebSocket المُنشأ لمدة عشر دقائق.
/cool/.../wsالاتصال لا يزال مفتوحًا في لوحة الشبكة بالمتصفح وأن المستند يستمر في الحفظ من خلال مضيف WOPI.إذا استمر انقطاع الاتصال، فاستعد وقت الفشل المسجل وقارنه بسجلات كل نقطة اتصال. يشير إغلاق الاتصال بعد 600 ثانية عند نقطة الدخول إلى تلك النقطة؛ بينما يشير وقت إغلاق مختلف أو خطأ من جانب الخادم إلى مكان آخر. لا يمكن تحديد السبب الدقيق من خلال "10 دقائق" فقط، وتختلف أسماء مهلات الانتظار وقيمها الافتراضية بين منتجات وإصدارات الوكيل. احتفظ بنسخة موثقة من إعدادات التشغيل مع إصدار CODE ومنتج الوكيل حتى يمكن التحقق من التحديثات المستقبلية مقابل الأمثلة الرسمية الحالية.
تتبع انقطاع اتصال CODE لمدة 10 دقائق إلى الوكيل أو موازن التحميل أو مسار WebSocket، ثم قم بتصحيح المهلة الزمنية وتحقق من بقاء الجلسة متصلة.
قم بتثبيت مخطط Collabora Helm الرسمي، وقم بتكوين الوصول إلى WOPI وتقارب الدخول، وتحقق من النشر دون أخطاء الإعداد الشائعة.
استخدم طلبات المتصفح وسجلات WOPI وفحوصات البروكسي المستهدفة لمعرفة سبب فتح Collabora لمستند فارغ - واختر حلاً يتناسب مع الأدلة.
قم بتكوين قواميس CODE Docker ووضع علامات على مقاطع المستندات بشكل صحيح حتى تتلقى اللغات الإنجليزية والفرنسية واللغات الأخرى المدعومة التدقيق الإملائي الصحيح.
قم بضبط عتبة عدم النشاط لكل عرض في coolwsd وميزها عن تعتيم علامات التبويب الخلفية، وإلغاء تحميل المستندات، والحفظ التلقائي، وانتهاء صلاحية تسجيل الدخول.
أوقف عمليات التحقق المجدولة لتحديثات التعليمات البرمجية، وراجع الخدمات البعيدة الاختيارية، واستخدم عناصر التحكم في الشبكة الصادرة دون تعطيل تحرير المستندات.
قم بتمكين تحرير المستندات بشكل آمن في Seafile عن طريق تكوين عنوان URL لاكتشاف Collabora و HTTPS والوصول إلى WOPI لنشرك.
اختبر حافظة النظام، واضبط أذونات المتصفح، وحدد متى يحتاج تكامل Collabora المضمن إلى تغيير سياسة iframe.
قم بتثبيت ملفات الخطوط في Docker ولوحة نظام Collabora بحيث تظهر الخطوط المخصصة في المحرر ويتم عرضها بشكل صحيح في المستندات.
قم بعمل نسخة احتياطية من ملف coolwsd.xml ومصادر النشر الخاصة به، واستعدها بأمان، وتحقق من الكود قبل أن يعود المستخدمون إلى التحرير.