الرئيسية
» كيف
»
تشغيل كود Collabora خلف Nginx مع إنهاء TLS
تشغيل كود Collabora خلف Nginx مع إنهاء TLS
قد تتأخر المستندات بعد وضع Collabora CODE خلف HTTPS بسبب اختلاف الخادم الوكيل وCODE حول نقطة انتهاء TLS، أو بسبب قيام الخادم الوكيل بحظر حركة مرور WebSocket. قم بتهيئة Nginx لعرض الشهادة العامة، وإعادة توجيهها إلى مستمع CODE خاص، وتمرير مسارات WebSocket. إعدادات CODE هي [ ssl.enable=falseأدخل الإعدادات هنا] ssl.termination=true.
يستخدم هذا المثال Nginx على مضيف Docker. لاستخدام خادم وكيل في حاوية أخرى، استخدم شبكة Docker الخاصة. راجع إعدادات الوكيل في Collabora ودليل صورة CODE Docker للاطلاع على الخيارات الخاصة بكل إصدار.
فهم التغييرات التي تطرأ على إنهاء بروتوكول SSL
يعني إنهاء TLS أن Nginx يتولى معالجة اتصال HTTPS وشهادة المتصفح، بينما يستخدم CODE بروتوكول HTTP على المنفذ 9980 خلفه. حافظ على خصوصية هذا المستمع: اربطه بحلقة اتصال محلية على مضيف واحد، أو استخدم شبكة Docker خاصة. إذا عبرت حركة مرور الوكيل إلى CODE شبكة غير موثوقة، فاحمِ هذا الرابط باستخدام TLS أو نفق.
يستخدم المتصفح بروتوكول HTTPS للاتصال بـ Nginx؛ ويقتصر استخدام HTTP على الرابط الخاص بين الخادم الوكيل و CODE.
قم بإعداد الحاوية والشهادة
اختر اسم المضيف العام. أنشئ سجل DNS يشير office.example.comإلى خادم Nginx الوكيل. احصل على شهادة لهذا الاسم تحديدًا، ثم ثبّت سلسلة الشهادات والمفتاح الخاص على الخادم الوكيل.
حافظ على خصوصية منفذ CODE. بالنسبة لـ Nginx المثبت مباشرةً على مضيف Docker، انشر منفذ الحاوية فقط على واجهة الاسترجاع. في Compose، يكون الربط ذو الصلة هو 127.0.0.1:9980:9980. لا تنشر 9980:9980على جميع واجهات المضيف إلا إذا كان جدار الحماية وتصميم الشبكة يقيدان ذلك صراحةً.
قم بضبط وضع TLS الخاص بـ CODE. في خدمة Compose، أضف الخيارين إلى إعدادات CODE. يستخدم المثال أدناه متغير صورة لتتمكن من تثبيت الوسم الذي قمت بمراجعته واختباره بدقة.
يؤدي الربط بـ 127.0.0.1 إلى إبقاء مستمع CODE قابلاً للوصول إليه فقط من مضيف Docker.تُخبر هذه الخيارات برنامج CODE بأن بروتوكول TLS يتم التعامل معه بواسطة الوكيل العكسي.
قم COLLABORA_CODE_IMAGEبتعيين علامة صورة مُختَبَرة ومُثبَّتة. احتفظ بقائمة السماح الخاصة بمضيف WOPI وإعدادات المصادقة؛ فإنهاء TLS لا يستبدلها. إذا كان Nginx خدمة Docker أخرى، فاحذف تعيين منفذ المضيف وقم بتوجيه الطلب إلى http://collabora:9980الشبكة الخاصة المشتركة.
قم بتهيئة Nginx لإنهاء حركة مرور TLS وحركة مرور التعليمات البرمجية عبر الوكيل.
أضف المضيف الافتراضي HTTPS. ضع المواقع التالية داخل كتلة خادم Nginx لاسم مضيف Collabora العام. استبدل اسم المضيف ومسارات الشهادة في المثال. هذا التكوين مخصص لعنوان URL رئيسي لـ Collabora، وليس عنوان URL مُثبَّتًا أسفل مسار مثل /office/.
يحتفظ Nginx بالشهادة العامة ويستمع على HTTPS لاسم مضيف Collabora.
قم بتوجيه مسارات موارد المحرر، والاكتشاف، والصلاحيات. تتطلب المواقع /cool/.../wsو /cool/adminwsرؤوس HTTP/1.1 و Upgrade لكي يتمكن Nginx من توجيه اتصالات WebSocket؛ ويحافظ مهلة القراءة الطويلة على جلسات التحرير مفتوحة. راجع وثائق توجيه WebSocket في Nginx .
قم بإعادة توجيه أصول المحرر، واكتشاف WOPI، ونقاط نهاية القدرات إلى نفس مستمع CODE.يحتاج مسار WebSocket الرئيسي إلى HTTP/1.1 ورؤوس الترقية وإلا فقد يتم تحميل المحرر دون أن يصبح قابلاً للاستخدام.قم بإعادة توجيه مسار WebSocket الإداري ومسارات نقل المستندات المتبقية أيضًا.
قم بتطبيق التغيير وتحقق من السلوك الحساس للإصدار
تحقق من صحة Nginx قبل إعادة التحميل. شغّل الأمر nginx -t. تابع فقط إذا أفاد Nginx بنجاح اختبار التكوين؛ ثم أعد تحميل Nginx باستخدام أمر الخدمة المعتاد في نظامك.
أعد إنشاء حاوية CODE. طبّق تغيير Compose باستخدام الأمر المناسب docker compose up -d collabora. تحقق من سجلات الحاوية بحثًا عن أخطاء بدء التشغيل، وتأكد من أن التكوين النشط يتضمن كلا خياري SSL.
قم بتشغيل اختبار بناء الجملة قبل إعادة التحميل حتى لا تتسبب كتلة الخادم غير الصحيحة في مقاطعة المواقع الأخرى.
للتوضيح، سجل مستودع Collabora تقريرًا بتاريخ 22 يوليو 2026 يفيد بأن coolwsd --probeفحص السلامة المدمج في الإصدار CODE 26.04.2.2 والإصدارات الأحدث قد يفحص بروتوكول HTTPS على المنفذ 9980 حتى عند انتهاء اتصال TLS عند الخادم الوكيل. قد يؤدي هذا إلى تصنيف الحاوية على أنها غير سليمة بينما تستجيب نقطة النهاية العامة. راجع سجل المشكلة الخاص بعلامة الصورة الخاصة بك ؛ واختبر نقطة النهاية العامة وجلسة تحرير قبل اعتبار حالة السلامة وحدها دليلًا على فشل TLS. احتفظ بفحوصات السلامة ما لم يتم استبدالها بمراقب آخر.
تحقق من اكتشاف HTTPS وجلسة تحرير حقيقية
اطلب https://office.example.com/hosting/discoveryعبر متصفح أو باستخدام curl. يجب أن يُعيد الطلب ملف XML لاكتشاف WOPI عبر HTTPS، مع عناوين URL تستخدم اسم مضيف HTTPS العام. يشير تحذير الشهادة إلى وجود مشكلة في اسم المضيف أو الشهادة؛ وتشير عناوين URL التي تعمل ببروتوكول HTTP إلى عدم تطابق وضع TLS أو مخطط إعادة التوجيه؛ ويشير رمز الخطأ 502 إلى أن الخادم الوكيل لا يستطيع الوصول إلى CODE.
بعد ذلك، افتح مستندًا تجريبيًا من مضيف WOPI المتصل وتأكد من عمل التحرير. في أدوات مطوري المتصفح، /cool/.../wsيجب أن يُنشئ الطلب اتصال WebSocket. إذا نجح الاكتشاف ولكن توقف التحرير، فتحقق من مواقع WebSocket وعناوينها. تأكد من أن التكامل يسمح لمضيف WOPI ويشير إلى الموقع المطلوب https://office.example.com.
الإعداد الناجح: الشهادة موثوقة، والاكتشاف يستخدم HTTPS، والمنفذ 9980 يظل خاصًا، ويتم فتح مستند اختبار وتعديله من خلال WebSocket.