كيفية تهيئة Jitsi Videobridge لإعداد خادم متعدد قابل للتوسع

تُعدّ إضافة خوادم Jitsi Videobridge (JVB) الطريقة المعتادة لزيادة سعة الوسائط في بيئة Jitsi Meet واحدة. احتفظ بخدمات الويب وProsody وJicofo على مضيف Meet الحالي، ثم أضف أجهزة جسر مستقلة تُسجّل في غرفة اكتشاف جسر Prosody نفسها. وبذلك، يُمكن لـ Jicofo إنشاء مؤتمرات جديدة على جسر مُتاح. في هذا التصميم الأساسي، يستخدم المشاركون في المؤتمر جسرًا واحدًا مُختارًا؛ فلا حاجة إلى Octo لمجرد وجود عدة خوادم JVB في بيئة العمل.

يتبع هذا الدليل إعداد Jitsi Handbook القابل للتوسع والمبني على حزم Debian/Ubuntu، والذي تم التحقق منه في 6 أكتوبر 2026. قد تختلف تبعيات الحزم الدقيقة والتكوين المُنشأ باختلاف التوزيعة، وإصدار حزمة Jitsi، وما إذا تم تثبيت الخادم باستخدام Docker أو طريقة أخرى. استخدم دليل التثبيت الرسمي المطابق لنشرك الحالي.

افهم معنى "الخادم المتعدد" في جيتسي

تم التحقق: يمكن لتثبيت Jitsi Meet واحد استخدام عدة جسور فيديو. يراقب Jicofo هذه الجسور ويُخصص لكل جسر مؤتمر جديد. يوضح المثال المبسط في دليل Jitsi أن خدمات Meet موجودة على خادم واحد، وثلاثة جسور فيديو (JVBs) على خوادم منفصلة. يجب أن يكون كل جسر متاحًا للمشاركين في الاجتماع للوسائط، وللبنية التحتية لـ Meet لإرسال الإشارات.

مفهوم خاطئ شائع: "أحتاج إلى مُوازن أحمال أمام JVBs". في تصميم الجسور المتعددة الموثق، يختار Jicofo جسرًا؛ ثم تُرسل العملاء الوسائط إلى ذلك الجسر. لا يُغني مُوازن أحمال HTTP العام أمام وسائط UDP عن اكتشاف الجسر أو تحديد موقع المؤتمر. الإجراء: أضف كل JVB إلى مجموعة جسور Prosody/Jicofo وانشر عنوان الوسائط الذي يمكن الوصول إليه. لا تُوجّه حركة مرور الوسائط لكل جسر إلى عنوان IP افتراضي UDP عشوائي.

مفهوم خاطئ شائع: "زيادة عدد الجسور تجعل اجتماعًا واحدًا يمتد تلقائيًا عبر جميع الخوادم." في الإعداد الأساسي، يُخصص Jicofo مؤتمرًا لجسر. أما توزيع المشاركين من مؤتمر واحد عبر مناطق أو جسور فهو بنية ترحيل منفصلة تُسمى Octo (مرحلات آمنة في وثائق JVB الحالية). الإجراء: ابدأ بتجميع الجسور العادي إذا كان هدفك هو عقد المزيد من الاجتماعات المتزامنة؛ وابحث في Octo فقط عندما يتطلب مؤتمر واحد استخدام جسور في مواقع متعددة أو عندما تحتاج إلى هذا السلوك الترحيلي.

خطط لحوض السباحة الجسري قبل تركيبه.

اختر اسم مضيف أو عنوانًا عامًا وثابتًا واحدًا لكل JVB. امنح كل جهاز افتراضي هوية نظام تشغيل فريدة واسمًا مستعارًا فريدًا لمثيل JVB عند استخدام خاصية XMPP MUC. يجب أن تتمكن جميع الجسور من الوصول إلى خدمة Prosody نفسها وغرفة مستودع الجسور. حافظ على توافق الإصدارات: لن يخلط Jicofo بين الجسور ذات الإصدارات المختلفة في نفس المؤتمر، وتؤكد وثائق الترحيل الحالية هذا القيد لـ Octo.

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

يعتمد ذلك على بيئتك: لا يوجد عدد موحد للمشاركين لكل جهاز افتراضي. تركز وثائق متطلبات Jitsi على سعة الشبكة وحجم العمل بدلاً من رقم ثابت واحد. يؤثر كل من الترميز، والدقة، والبث المتزامن، ومعدلات الحزم، والمؤتمرات المتزامنة، وعرض نطاق مزود الخدمة على السعة. الإجراء: حدد مستوى أساسيًا لحجم العمل الفعلي لديك، ثم أضف جسرًا واحدًا في كل مرة وراقب وحدة المعالجة المركزية، وإنتاجية الشبكة، وفقدان الحزم، وجودة المؤتمر.

قم بتكوين عدة خوادم JVB خطوة بخطوة

1. تأكد من أن مضيف Meet الحالي سليم

قبل إضافة الأجهزة، تأكد من تحميل صفحة Meet الحالية، وتشغيل Prosody وJicofo، وإتمام مكالمة اختبارية عبر الجسر الحالي. سجّل إصدارات حزمة Jitsi. سيؤدي وجود خلل في إعدادات الإشارة أو الشهادة على الخادم الأساسي إلى ظهور الجسر الجديد وكأنه غير مُهيأ بشكل صحيح حتى لو كانت شبكته سليمة.

عند تثبيت حزمة Debian/Ubuntu، افحص الخدمات systemctl status prosody jicofo jitsi-videobridge2وراجع سجلاتها. استخدم أسماء الخدمات الموجودة في تثبيتك؛ إذ أن عمليات النشر المعبأة في حاويات تعرض أوامر ومواقع سجلات مختلفة.

2. إعداد قواعد نظام أسماء النطاقات (DNS) والتوجيه وجدار الحماية

امنح كل جسر عنوانًا عامًا خاصًا به أو قم بتكوين تعيين NAT فردي صحيح. يوضح دليل الإعداد القابل للتوسع هذه المسارات النموذجية: يصل العملاء العامون إلى مضيف الويب عبر منفذي TCP 80/443؛ وتصل خوادم JVB إلى Prosody عبر منفذ TCP 5222؛ ويصل العملاء إلى كل جسر فيديو عبر منفذ UDP 10000 للوسائط. يُستخدم منفذ TCP 80 عادةً لإعداد الشهادات أو إعادة التوجيه، بينما يجب أن يستخدم موقع Meet الإنتاجي بروتوكول HTTPS.

  • السماح بوصول حزم UDP 10000 الواردة إلى كل جسر من شبكات المشاركين التي تدعمها خدمتك.
  • قم بالسماح لـ Bridge-to-Prosody TCP 5222 من مضيفي JVB، وقم بتقييده على تلك المضيفين عندما يسمح جدار الحماية الخاص بك بذلك.
  • حافظ على خصوصية خدمة Prosody/XMPP للبنية التحتية المقصودة قدر الإمكان.
  • لا تعرض نقاط نهاية HTTP/debug الخاصة بـ JVB علنًا. إذا قمت بتمكين أو توجيه نقطة نهاية Colibri WebSocket عامة، فاتبع وثائق JVB والوكيل العكسي الحالية الخاصة بهذا النشر تحديدًا.

يعتمد ذلك على شبكتك: قد تتطلب تقنية NAT، ومجموعات أمان السحابة، وبروتوكول IPv6، وتقنية TURN، وشبكات الشركات ذات القيود الصارمة، مسارات أو منافذ إضافية. لا تُعد قائمة المنافذ الافتراضية دليلاً على أن الوسائط تعمل عبر جدار الحماية الخاص بك. الإجراء: تحقق من تدفق الحزم إلى كل عنوان جسر عام من شبكة عميل خارجية، واختبر مكالمة فعلية؛ فنجاح اتصال XMPP وحده لا يُثبت عمل وسائط UDP.

3. قم بتثبيت حزمة Jitsi Videobridge نفسها على كل عقدة

استخدم مستودع Jitsi وتعليمات الحزمة التي تتوافق مع توزيعة مضيف Meet. على كل عقدة Debian/Ubuntu جديدة، ثبّت jitsi-videobridge2الحزمة وأجب عن مطالبات تكوينها باستخدام اسم مضيف Meet وفقًا للإعداد الرسمي القابل للتوسع. يشير الدليل إلى أنه بالنسبة لإعداده الموثق القائم على الحزمة، لا يحتاج الجسر إلى أي تغيير إضافي بخلاف الإعداد الافتراضي بعد التثبيت.

لا تقم بتثبيت حزمة Jitsi Meet ثانية كاملة على كل جسر إلا إذا كنت ترغب عمدًا في نشر تطبيقات Meet مستقلة. بالنسبة لمجموعة الجسور، احتفظ بدور الويب وProsody وJicofo على المضيف الرئيسي، وأضف خدمات JVB إلى الأجهزة الأخرى. استخدم نفس إصدار JVB المدعوم في جميع أنحاء المجموعة؛ وقم بترقيات مرحلية حتى لا تترك مجموعة ذات إصدارات مختلطة لفترة أطول من اللازم.

4. التحقق من تسجيل الجسر وهويته

في الإعداد القائم على الحزم، دع إعدادات الحزمة الرسمية تُنشئ الإعدادات المتوقعة أولًا. يجب أن تتصل JVBs بـ Prosody وتُعلن عن وجودها على نفس خادم MUC الخاص بالشركة التي يراقبها Jicofo. إذا كنت تستخدم مسار تكوين عميل XMPP الحالي، فستجد في وثائق JVB الأجزاء ذات الصلة ضمن videobridge.statsو videobridge.apis.xmpp-client.configs؛ يجب أن ينضم Jicofo إلى الشركة المعنية باستخدام jicofo.bridge.brewery-jid.

يأتي التكوين الحديث النموذجي بهذا الشكل؛ استبدل جميع القيم النموذجية بالقيم من نظامك واحفظ السر المشترك:

videobridge {
  stats {
    enabled = true
    transports = [{ type = "muc" }]
  }
  apis {
    xmpp-client {
      configs {
        xmpp-server-1 {
          hostname = "meet.example.com"
          domain = "auth.meet.example.com"
          username = "jvb"
          password = "REPLACE_WITH_SECRET"
          muc_jids = "JvbBrewery@internal.auth.meet.example.com"
          muc_nickname = "bridge-01"
        }
      }
    }
  }
}

استخدم اسمًا مختلفًا muc_nicknameلكل جسر (على سبيل المثال، bridge-02و bridge-03). يُحذر مشروع JVB من ضرورة أن تكون الأسماء المستعارة فريدة بين جميع النسخ. يعتمد اسم ملف التكوين الدقيق وما إذا كانت هذه الكتلة الصريحة مطلوبة على حزمتك وإعداداتك الحالية؛ تجنب إضافة تكوين حديث مكتوب يدويًا فوق إعدادات الحزمة القديمة المُولّدة دون مراجعة وثائق الإصدار المُثبّت.

5. ابدأ الخدمة وتحقق من السجلات

أعد تشغيل JVB أو ابدأه على كل مضيف جديد، ثم تأكد من بقائه نشطًا واتصاله بـ Prosody. يوصي دليل الإعداد القابل للتوسع بمراجعة سجلات Prosody وJicofo للتأكد من اتصالات الجسر وأن Jicofo يكتشف الجسور. إذا لم يظهر أي جسر، فتحقق بالترتيب التالي: تحليل DNS وإمكانية الوصول إلى TCP 5222؛ بيانات اعتماد XMPP والنطاق؛ التهجئة الصحيحة لـ MUC الخاص بالشركة؛ اسم مستعار مكرر؛ ثم توافق إصدار JVB/Jicofo.

6. قم بإجراء اختبار وسائط خارجية على كل جسر

ابدأ عدة اجتماعات اختبارية جديدة وتأكد من أن Jicofo يوزعها على مجموعة الجسور المتاحة بمرور الوقت. من المتوقع أن يهبط اجتماع واحد على جسر واحد؛ فهذا لا يدل على فشل الموازنة. استخدم واجهة تصحيح أخطاء Jicofo، إذا كانت مُفعّلة ومُقيّدة الوصول، لفحص الجسور المتاحة والمؤتمرات النشطة. توفر وثائق JVB curl http://localhost:8888/debugمثالًا على التصحيح المحلي؛ اربط واجهات التشخيص أو استخدم جدار الحماية للحفاظ على خصوصيتها.

اختبر الاتصال مع عملاء خارج شبكة الخادم. تأكد من عمل الصوت والفيديو، ثم افحص عنوان الجسر المُختار وتدفق بيانات UDP. إذا ظهر جسر في Jicofo ولكن فشلت المكالمات فقط عند اختيار هذا الجسر، فتحقق من عنوانه العام، وتعيين NAT، وجدار حماية UDP، والمرشحين المُعلن عنهم. أبقِ جسرًا واحدًا خارج التداول أثناء الصيانة فقط من خلال إجراء إيقاف تشغيل أو نشر مدعوم لإصدارك المُثبّت؛ إذ قد يؤدي إعادة تشغيل جسر نشط إلى مقاطعة الاجتماعات المُخصصة له.

متى يجب عليك تفعيل Octo؟

يُعدّ Octo الخيار الأمثل عندما يتطلب مؤتمر واحد استخدام جسور متعددة، غالبًا بسبب توزع المشاركين في مناطق جغرافية مختلفة. ولا يُعدّ Octo شرطًا أساسيًا لإضافة JVBs للسعة العادية. تتطلب وثائق ترحيل JVB الحالية تهيئة الترحيل على كل جسر مشارك، واستخدام Colibri WebSockets للاتصالات بين الجسور، واستراتيجية اختيار جسر Jicofo مناسبة. كما يعتمد السلوك المُراعي للمنطقة على توفير معلومات دقيقة عن منطقة العميل في تهيئة Meet المُخدّمة.

يتضمن تكوين الترحيل معرّفًا فريدًا relay-idومنطقة لكل جسر، بينما يُفعّل Jicofo بروتوكول Octo ويختار استراتيجية مثل RegionBasedBridgeSelectionStrategy. كما يجب توجيه نقاط نهاية WebSocket الخاصة بالترحيل عبر أي وكيل بشكل صحيح. تتغير هذه الإعدادات باختلاف الإصدارات والطوبولوجيات، لذا اتبع دليل الترحيل الحالي وتحقق من مسارات الوكيل بدقة قبل النشر.

الإجراء: اترك Octo معطلاً لمجموعة جسور بسيطة من منطقة واحدة. إذا كنت بحاجة إلى مجموعة جسور من مناطق متعددة، فاختبر استراتيجية التقسيم الموثقة في بيئة تجريبية، وافحص مُحدد الجسر وحالة المؤتمر في Jicofo، ثم قم بتهيئة مناطق العميل والاختيار بناءً على المنطقة. لا تُعيّن تسميات المناطق حتى تتأكد من كيفية استلام العملاء لبيانات تعريف المنطقة المطابقة.

ما الذي يجب مراقبته أثناء التوسع؟

  • الشبكة: معدل نقل البيانات الصادر والوارد، وفقدان الحزم، والارتعاش، وما إذا كان يمكن الوصول إلى UDP 10000 من شبكات العملاء الحقيقية.
  • ضغط المضيف: وحدة المعالجة المركزية، والذاكرة، وصحة JVM، ومعدل نقل البيانات المستدام. يتم تحديد الحجم بناءً على اجتماعات تمثيلية بدلاً من عدد المكالمات الإجمالي المفترض.
  • عضوية المجموعة: وجود الجسر في Jicofo، واتساق الإصدار، وما إذا كان بإمكان المؤتمرات التي تم إنشاؤها حديثًا الوصول إلى كل عقدة.
  • تجربة المشاركين: استمرارية الصوت، وتوقف الفيديو، وإعادة الاتصال، والجودة في ظل ذروة التزامن المتوقعة.

إذا أبلغ المستخدمون عن مشاكل في عقدة JVB واحدة فقط، فقارن مسار الشبكة وتكوين تلك العقدة مع عقدة نظيرة تعمل بشكل سليم قبل توسيع نطاق المجموعة بأكملها. إذا تدهور أداء جميع الجسور معًا، فقد يكون سبب الاختناق هو عرض النطاق الترددي المشترك، أو خدمات الإشارة الأساسية، أو شبكة المشاركين. ينجح التوسيع عندما تكون الجسور الجديدة قابلة للوصول بشكل مستقل، ومسجلة بشكل صحيح، وتُقلل الحمل بشكل ملحوظ أثناء الاختبارات الواقعية.

المراجع الرسمية

اترك تعليقاً

حل مشكلة تعليق وضع الصيانة في Nextcloud مع OCC

حل مشكلة تعليق وضع الصيانة في Nextcloud مع OCC

قم بمسح صفحة صيانة Nextcloud العالقة بأمان باستخدام OCC، وتحقق مما إذا كانت الترقية غير مكتملة، وتأكد من أن المثيل جاهز للمستخدمين.

إصلاح مشكلة تأجيل البريد الصادر في زيمبرا: "انتهت مهلة الاتصال بالمنفذ 25"

إصلاح مشكلة تأجيل البريد الصادر في زيمبرا: "انتهت مهلة الاتصال بالمنفذ 25"

قم بتشخيص أخطاء تأجيل البريد الصادر في Zimbra على المنفذ 25. تحقق من قائمة الانتظار، وMX DNS، وجدران الحماية، وحظر الموفر، وقم بتكوين مرحل SMTP معتمد.

كيفية إعداد خادم مصفوفة على Raspberry Pi 4 باستخدام Conduit

كيفية إعداد خادم مصفوفة على Raspberry Pi 4 باستخدام Conduit

قم بإعداد خادم منزلي خفيف الوزن من نوع Matrix على Raspberry Pi 4 باستخدام Conduit و Docker و NGINX و HTTPS وعناصر التحكم في التسجيل والاتحاد والفحوصات.

كيفية تهيئة Jitsi Videobridge لإعداد خادم متعدد قابل للتوسع

كيفية تهيئة Jitsi Videobridge لإعداد خادم متعدد قابل للتوسع

أضف خوادم Jitsi Videobridge إلى نشر Jitsi Meet مشترك، وقم بتكوين التسجيل والوصول إلى جدار الحماية، وتحقق من اختيار الجسر، وتعرف على متى تكون هناك حاجة إلى Octo.

كيفية تثبيت شهادة SSL تجارية على خادم Zimbra

كيفية تثبيت شهادة SSL تجارية على خادم Zimbra

قم بتثبيت شهادة SSL تجارية على Zimbra بأمان: أنشئ طلب توقيع الشهادة (CSR)، وقم ببناء سلسلة CA، وتحقق من المفتاح والشهادة، وقم بنشرها، وأعد تشغيل الخدمات، وتأكد من HTTPS.

كيفية تخصيص واجهة وشعار BigBlueButton

كيفية تخصيص واجهة وشعار BigBlueButton

قم بتغيير شعار BigBlueButton الافتراضي، وأضف شعارًا إلى الاجتماعات الفردية، وافهم متى تتطلب العلامة التجارية الأوسع للواجهة إصدارًا مخصصًا للعميل.

كيفية مسح سجلات تدقيق Zimbra لتحرير مساحة القرص بأمان

كيفية مسح سجلات تدقيق Zimbra لتحرير مساحة القرص بأمان

تعرف على كيفية تحديد سجلات التدقيق القديمة لـ Zimbra وأرشفتها وضغطها وإزالتها، ومتى يجب تجنب اقتطاع ملف audit.log، وكيفية التحقق من استعادة مساحة القرص والتسجيل بشكل صحيح.

إصلاح مشكلة "فشل الاتصال بخادم التخزين" في برنامج Kopano Dagent

إصلاح مشكلة "فشل الاتصال بخادم التخزين" في برنامج Kopano Dagent

قم باستكشاف أخطاء اتصال خادم تخزين Kopano dagent وإصلاحها عن طريق التحقق من حالة الخادم، ومقبس الخادم، وأذونات مقبس Unix، والمستمعين عن بعد، واختبارات التسليم المتحكم بها.

كيفية إصلاح خطأ "انقضاء مهلة آلية القفل" في قفل الملفات في ownCloud

كيفية إصلاح خطأ "انقضاء مهلة آلية القفل" في قفل الملفات في ownCloud

قم بإصلاح أخطاء مهلة قفل الملفات في ownCloud عن طريق تحديد الأقفال المعاملاتية، ونقل تخزين القفل إلى Redis، والتحقق من المجموعات، وإعادة الاختبار بأمان.

كيفية إصلاح مشكلة نفاد ذاكرة برنامج Matrix Synapse أثناء المزامنة

كيفية إصلاح مشكلة نفاد ذاكرة برنامج Matrix Synapse أثناء المزامنة

قم باستكشاف أخطاء Matrix Synapse المتعلقة بـ OOM أثناء /sync عن طريق فحص ضغط الذاكرة، وضبط ذاكرة التخزين المؤقت بعناية، وعزل المزامنة الأولية، ومراقبة العمال.