تشغيل كود 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 الخاص إلى حاوية Collabora CODE على العنوان 127.0.0.1 المنفذ 9980
يستخدم المتصفح بروتوكول HTTPS للاتصال بـ Nginx؛ ويقتصر استخدام HTTP على الرابط الخاص بين الخادم الوكيل و CODE.

قم بإعداد الحاوية والشهادة

  1. اختر اسم المضيف العام. أنشئ سجل DNS يشير office.example.comإلى خادم Nginx الوكيل. احصل على شهادة لهذا الاسم تحديدًا، ثم ثبّت سلسلة الشهادات والمفتاح الخاص على الخادم الوكيل.
  2. حافظ على خصوصية منفذ CODE. بالنسبة لـ Nginx المثبت مباشرةً على مضيف Docker، انشر منفذ الحاوية فقط على واجهة الاسترجاع. في Compose، يكون الربط ذو الصلة هو 127.0.0.1:9980:9980. لا تنشر 9980:9980على جميع واجهات المضيف إلا إذا كان جدار الحماية وتصميم الشبكة يقيدان ذلك صراحةً.
  3. قم بضبط وضع TLS الخاص بـ CODE. في خدمة Compose، أضف الخيارين إلى إعدادات CODE. يستخدم المثال أدناه متغير صورة لتتمكن من تثبيت الوسم الذي قمت بمراجعته واختباره بدقة.
محرر Docker Compose يعرض منفذ خدمة Collabora المرتبط بـ 127.0.0.1 على المنفذ 9980
يؤدي الربط بـ 127.0.0.1 إلى إبقاء مستمع CODE قابلاً للوصول إليه فقط من مضيف Docker.
إعدادات بيئة Docker Compose مع ssl.enable=false و ssl.termination=true لـ Collabora CODE
تُخبر هذه الخيارات برنامج CODE بأن بروتوكول TLS يتم التعامل معه بواسطة الوكيل العكسي.
services:
  collabora:
    image: ${COLLABORA_CODE_IMAGE}
    restart: unless-stopped
    ports:
      - "127.0.0.1:9980:9980"
    environment:
      extra_params: "--o:ssl.enable=false --o:ssl.termination=true"

قم COLLABORA_CODE_IMAGEبتعيين علامة صورة مُختَبَرة ومُثبَّتة. احتفظ بقائمة السماح الخاصة بمضيف WOPI وإعدادات المصادقة؛ فإنهاء TLS لا يستبدلها. إذا كان Nginx خدمة Docker أخرى، فاحذف تعيين منفذ المضيف وقم بتوجيه الطلب إلى http://collabora:9980الشبكة الخاصة المشتركة.

قم بتهيئة Nginx لإنهاء حركة مرور TLS وحركة مرور التعليمات البرمجية عبر الوكيل.

  1. أضف المضيف الافتراضي HTTPS. ضع المواقع التالية داخل كتلة خادم Nginx لاسم مضيف Collabora العام. استبدل اسم المضيف ومسارات الشهادة في المثال. هذا التكوين مخصص لعنوان URL رئيسي لـ Collabora، وليس عنوان URL مُثبَّتًا أسفل مسار مثل /office/.
مقتطف من إعدادات Nginx يتضمن مستمع TLS، واسم الخادم office.example.com، ومسارات ملفات الشهادات
يحتفظ Nginx بالشهادة العامة ويستمع على HTTPS لاسم مضيف Collabora.
server {
    listen 443 ssl;
    server_name office.example.com;
    ssl_certificate /etc/letsencrypt/live/office.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/office.example.com/privkey.pem;

    location ^~ /browser {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location ^~ /hosting/discovery {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location ^~ /hosting/capabilities {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location ~ ^/cool/(.*)/ws$ {
        proxy_pass http://127.0.0.1:9980;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 36000s;
    }
    location ^~ /cool/adminws {
        proxy_pass http://127.0.0.1:9980;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 36000s;
    }
    location ~ ^/(c|l)ool {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

قم بتوجيه مسارات موارد المحرر، والاكتشاف، والصلاحيات. تتطلب المواقع /cool/.../wsو /cool/adminwsرؤوس HTTP/1.1 و Upgrade لكي يتمكن Nginx من توجيه اتصالات WebSocket؛ ويحافظ مهلة القراءة الطويلة على جلسات التحرير مفتوحة. راجع وثائق توجيه WebSocket في Nginx .

يقوم Nginx بحظر توجيه مسارات اكتشاف المتصفح والاستضافة إلى مستمع CODE الخاص
قم بإعادة توجيه أصول المحرر، واكتشاف WOPI، ونقاط نهاية القدرات إلى نفس مستمع CODE.
موقع Nginx WebSocket للمسار المميز مع HTTP 1.1، وعناوين الترقية والاتصال، ومهلة قراءة طويلة
يحتاج مسار WebSocket الرئيسي إلى HTTP/1.1 ورؤوس الترقية وإلا فقد يتم تحميل المحرر دون أن يصبح قابلاً للاستخدام.
إعدادات Nginx لـ Cool admin WebSocket و Collabora، مسارات طلبات cool أو lool
قم بإعادة توجيه مسار WebSocket الإداري ومسارات نقل المستندات المتبقية أيضًا.

قم بتطبيق التغيير وتحقق من السلوك الحساس للإصدار

  1. تحقق من صحة Nginx قبل إعادة التحميل. شغّل الأمر nginx -t. تابع فقط إذا أفاد Nginx بنجاح اختبار التكوين؛ ثم أعد تحميل Nginx باستخدام أمر الخدمة المعتاد في نظامك.
  2. أعد إنشاء حاوية CODE. طبّق تغيير Compose باستخدام الأمر المناسب docker compose up -d collabora. تحقق من سجلات الحاوية بحثًا عن أخطاء بدء التشغيل، وتأكد من أن التكوين النشط يتضمن كلا خياري SSL.
نافذة طرفية مع أمر nginx -t جاهزة للتحقق من صحة تكوين الخادم الوكيل العكسي
قم بتشغيل اختبار بناء الجملة قبل إعادة التحميل حتى لا تتسبب كتلة الخادم غير الصحيحة في مقاطعة المواقع الأخرى.

للتوضيح، سجل مستودع 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.

اترك تعليقاً

تشغيل كود Collabora خلف Nginx مع إنهاء TLS

تشغيل كود Collabora خلف Nginx مع إنهاء TLS

قم بتعيين Nginx مسؤولاً عن HTTPS لحاوية Collabora CODE، وقم بتحرير WebSockets بشكل صحيح، وتحقق من نقطة النهاية العامة دون كشف المنفذ 9980.

أبقِ النص مرئيًا عند فتح لوحة مفاتيح Collabora Mobile

أبقِ النص مرئيًا عند فتح لوحة مفاتيح Collabora Mobile

استكشاف أخطاء لوحة مفاتيح متصفح الهاتف المحمول التي تغطي النص في Collabora Online وإصلاحها، مع حلول سريعة وفحوصات منفصلة للمتصفحات وWebViews المضمنة وصفحات الاستضافة.

أوقف عمليات الطباعة والتنزيل غير المرغوب فيها في ONLYOFFICE

أوقف عمليات الطباعة والتنزيل غير المرغوب فيها في ONLYOFFICE

قم بتعيين حدود الطباعة والتنزيل لروابط ONLYOFFICE أو أعضاء الغرفة أو جلسات Docs API، ثم تحقق من القيود من حساب المستلم.

جدولة نسخ احتياطية موثوقة لمساحة عمل ONLYOFFICE

جدولة نسخ احتياطية موثوقة لمساحة عمل ONLYOFFICE

قم بتعيين وجهة النسخ الاحتياطي، والجدول الزمني، وتغطية البريد، وحد الاحتفاظ في ONLYOFFICE Workspace، ثم تحقق من أن الأرشيف جاهز للاستعادة.

قم بتثبيت ONLYOFFICE Docs Enterprise باستخدام ملف الإنشاء الرسمي الخاص به

قم بتثبيت ONLYOFFICE Docs Enterprise باستخدام ملف الإنشاء الرسمي الخاص به

ابدأ تشغيل حزمة Enterprise Docker Compose، واحفظ ترخيصها وبياناتها، وقم بتكوين JWT بأمان، وتأكد من أن المحررات جاهزة للتكامل.

تنظيف نص جدول البيانات باستخدام ماكرو ONLYOFFICE قابل لإعادة الاستخدام

تنظيف نص جدول البيانات باستخدام ماكرو ONLYOFFICE قابل لإعادة الاستخدام

استخدم ماكرو جافا سكريبت الخاص بـ ONLYOFFICE لإزالة الأحرف غير القابلة للطباعة وقص المسافات الزائدة من نطاق جدول بيانات محدد، مع سير عمل مراجعة آمن.

تغيير موقع التخزين الافتراضي لمساحة عمل ONLYOFFICE

تغيير موقع التخزين الافتراضي لمساحة عمل ONLYOFFICE

انقل بيانات البوابة من القرص الافتراضي إلى موفر تخزين سحابي مدعوم، أو انقل بيانات Docker بأمان عن طريق تغيير تعيين وحدة التخزين المضيفة الخاصة بها.

إزالة خادم مستندات ONLYOFFICE بالكامل من نظام التشغيل Linux

إزالة خادم مستندات ONLYOFFICE بالكامل من نظام التشغيل Linux

حدد ما إذا كان خادم المستندات يستخدم حزمة Linux أو Docker، وقم بإزالة مكوناته فقط، وتحقق من البيانات المتبقية دون حذف الخدمات المشتركة عن طريق الخطأ.

تخلص من تأخر التحرير المشترك في ONLYOFFICE عن طريق تحديد نقطة الاختناق

تخلص من تأخر التحرير المشترك في ONLYOFFICE عن طريق تحديد نقطة الاختناق

حدد أسباب بطء التحرير التعاوني، مثل ضغط موارد Docker أو اتصالات الوكيل أو تحميل المستندات، ثم اختر الحل الذي يتوافق مع قياساتك.

قم بتهيئة بروتوكول HTTPS لمستندات ONLYOFFICE في Docker

قم بتهيئة بروتوكول HTTPS لمستندات ONLYOFFICE في Docker

اختر المكان الذي يجب أن ينتهي فيه TLS، وقم بتثبيت شهادة موثوقة ومفتاح خاص بأمان، وتحقق من الوصول إلى HTTPS لخادم ONLYOFFICE Docs المُشغل بواسطة Docker.