يدعم Ayakaleaf Pro التوسّع الأفقي. لقد اختبرنا وتحققنا من أنه يعمل بشكل صحيح مع نسخ متماثلة متعددة.
بدءًا من Server CE/Server Pro
5.0.3، أُعيدت تسمية متغيرات البيئة من SHARELATEX_* إلى OVERLEAF_*.إذا كنت تستخدم إصدارًا 4.x (أو أقدم)، فيرجى التأكد من أن المتغيرات تحمل البادئة المناسبة (مثل SHARELATEX_SITE_URL بدلًا من OVERLEAF_SITE_URL)المتطلبات

تخزين بيانات مركزي خارجي
يمكن تقسيم تخزين البيانات في Server Pro إلى أربعة مخازن بيانات:-
MongoDB
- تُحفظ معظم البيانات في MongoDB.
- ندعم إما نسخة محلية أو نسخة خارجية، مثل MongoDB Atlas (خدمة MongoDB مُدارة بالكامل تعمل ضمن البنية التحتية لـ AWS).
-
Redis
- يخزّن Redis البيانات المؤقتة، مثل تحديثات المستندات المعلّقة قبل تفريغها إلى MongoDB.
- يُستخدم Redis لنقل تحديثات المستندات بين الخدمات المختلفة وإشعار المحرر بتغييرات الحالة في مشروع معيّن.
- يُستخدم Redis لتخزين جلسات المستخدمين.
- ندعم إما نسخة محلية أو نسخة خارجية.
-
ملفات المشاريع وملفات السجل
- تُخزَّن ملفات المشاريع غير القابلة للتحرير خارج MongoDB. كما يخزّن نظام سجل المشاريع الجديد (من Server Pro 3.5 فصاعدًا) السجل خارج MongoDB أيضًا.
- بالنسبة للنسخ المفردة الصغيرة، ندعم إما نظام ملفات محليًا (يمكن أن يعتمد على SSD محلي أو NFS أو EBS) أو نظام تخزين بيانات متوافقًا مع S3.
-
بالنسبة للتوسّع الأفقي، ندعم فقط أنظمة تخزين البيانات المتوافقة مع S3.
-
الملفات المؤقتة
- يجب أن تعمل عمليات ترجمة LaTeX على أقراص محلية سريعة للحصول على أفضل أداء. ولا يلزم حفظ ناتج الترجمة أو نسخه احتياطيًا.
- كما يستفيد التخزين المؤقت لعمليات رفع الملفات الجديدة وإنشاء ملفات zip للمشاريع من استخدام قرص محلي.
ننصح بشدة باستخدام قرص محلي. قد يؤدي استخدام أي نوع من الأقراص الشبكية (مثل NFS أو EBS) إلى أخطاء ترجمة غير متوقعة ومشكلات أداء أخرى.
Git-bridge
يتوفر Git-bridge في Server Pro بدءًا من الإصدار 4.0.1.
- نسخة MongoDB مركزية يمكن الوصول إليها من جميع نسخ Server Pro
- نسخة Redis مركزية يمكن الوصول إليها من جميع نسخ Server Pro
- واجهة تخزين خلفية مركزية متوافقة مع S3 لملفات المشاريع والسجل
- قرص محلي في كل نسخة للملفات المؤقتة
- قرص محلي في النسخة التي تستضيف حاوية git-bridge لبيانات git-bridge
متطلبات موازن الأحمال
-
توجيه ثابت (Persistent routing)، مثلًا باستخدام ملف تعريف ارتباط (cookie)
ينبع هذا المتطلب من المكوّنات التالية:
- تستخدم إمكانية التحرير في الوقت الحقيقي في Server Pro تقنية WebSockets مع الرجوع إلى XHR polling كبديل. لكل جلسة تحرير حالة محلية على جانب الخادم، ويجب دائمًا توجيه طلبات جلسة تحرير معيّنة إلى نسخة Server Pro نفسها. وتستخدم ميزة التعاون آلية Pub/Sub في Redis لمشاركة التحديثات بين نسخ Server Pro المتعددة.
- تحتفظ ترجمة LaTeX بالناتج وذاكرة الترجمة المؤقتة محليًا لتحسين الأداء. فعند إرسال طلب ترجمة إلى إحدى نسخ Server Pro، يجب توجيه طلبات تنزيل PDF/السجل اللاحقة إلى نسخة Server Pro نفسها.
- مهلات طلبات طويلة لدعم ترجمة مستندات LaTeX الكبيرة
- دعم WebSocket للحصول على أفضل أداء
- حجم حمولة POST يبلغ 50MB
-
يجب أن تكون مهلة keep-alive أقل من مهلة keep-alive في Server Pro
يمكن تهيئة مهلة keep-alive في Server Pro باستخدام متغير البيئة
NGINX_KEEPALIVE_TIMEOUT. والقيمة الافتراضية هي 65s. مع القيمة الافتراضية، تعمل مهلة keep-alive بمقدار 60s في موازن الأحمال. معNGINX_KEEPALIVE_TIMEOUT=120، يمكن لموازن الأحمال اختيار 115s. -
عناوين IP للعملاء
عيّن ترويسة الطلب
X-Forwarded-Forإلى عنوان IP الخاص بالعميل. -
عند إنهاء SSL
يجب على موازن الأحمال إضافة ترويسة الطلب
X-Forwarded-Proto: https.
نموذج لإعداد HAProxy
نموذج لإعداد HAProxy
إعداد Server Pro
الأسرار يجب أن تتفق نسخ Server Pro على أسرار مشتركة:WEB_API_PASSWORD(مصادقة web api)STAGING_PASSWORDوV1_HISTORY_PASSWORDبالقيمة نفسها (مصادقة السجل)CRYPTO_RANDOM(لملف تعريف ارتباط الجلسة)OT_JWT_AUTH_KEY(مصادقة السجل)
/dev/urandom (256 بت عشوائيًا).
OVERLEAF_MONGO_URL (SHARELATEX_MONGO_URL للإصدارات 4.x وما قبلها) إلى نسخة MongoDB المركزية.
Redis
وجّه OVERLEAF_REDIS_HOST (SHARELATEX_REDIS_HOST للإصدارات 4.x وما قبلها) وREDIS_HOST إلى نسخة Redis المركزية.
التخزين المتوافق مع S3 لملفات المشاريع والسجل
يرجى مراجعة التوثيق الخاص بـ التخزين المتوافق مع S3 لمعرفة التفاصيل.
الملفات المؤقتة
سيكون الربط الافتراضي (bind-mount) لقرص SSD محلي إلى /var/lib/overleaf (/var/lib/sharelatex للإصدارات 4.x وما قبلها) كافيًا. تأكد من توجيه SANDBOXED_COMPILES_HOST_DIR إلى نقطة الربط على المضيف.
ننصح بشدة باستخدام قرص محلي. قد يؤدي استخدام أي نوع من الأقراص الشبكية (مثل NFS أو EBS) إلى أخطاء ترجمة غير متوقعة ومشكلات أداء أخرى.
- عيّن
OVERLEAF_BEHIND_PROXY=true(SHARELATEX_BEHIND_PROXYللإصدارات4.xوما قبلها) للحصول على عناوين IP دقيقة للعملاء. - عيّن
TRUSTED_PROXY_IPSإلى عنوان IP الخاص بموازن الأحمال (يمكن تحديد عدة نطاقات CIDR مفصولة بفاصلة).
يتوفر Git-bridge في Server Pro بدءًا من الإصدار 4.0.1.
-
عيّن
GIT_BRIDGE_ENABLEDإلى'true' -
عيّن
GIT_BRIDGE_HOSTإلى<git-bridge container name>، مثلgit-bridge -
عيّن
GIT_BRIDGE_PORTإلى8000 -
عيّن
V1_HISTORY_URLإلىhttp://<server-pro sibling container name>:3100/api. ملاحظة: هذا ضروري فقط في الحاوية الشقيقة لحاوية git-bridge. ويمكن للنسخ الأخرى استخدام رابط localhost، وهو الافتراضي.
- عيّن
GIT_BRIDGE_API_BASE_URLإلىhttp://<server-pro sibling container name>/api/v0، مثلhttp://server-pro-ha-1/api/v0 - عيّن
GIT_BRIDGE_OAUTH2_SERVERإلىhttp://<server-pro sibling container name>، مثلhttp://server-pro-ha-1 - عيّن
GIT_BRIDGE_POSTBACK_BASE_URLإلىhttp://<git-bridge container name>:8000، مثلhttp://git-bridge:8000 - عيّن
GIT_BRIDGE_ROOT_DIRإلى قرص بيانات git-bridge المربوط (bind-mounted)، مثل/data/git-bridge
نموذج لإعداد docker-compose.yml
نموذج لإعداد docker-compose.yml
يعرض الإعداد التالي بيئة قائمة بذاتها. لكي يعمل العرض التوضيحي، تحتاج إلى توفير مفتاح/شهادة SSL صالحة وتعديل
OVERLEAF_SITE_URL (SHARELATEX_SITE_URL للإصدارات 4.x وما قبلها). في الإعداد الفعلي، يجب استبدال الأسرار الوهمية بأسرار حقيقية كما هو موضح ضمن الشيفرة. وفي الإعداد الفعلي أيضًا، تحتاج إلى نقل الحاويات الفردية إلى عقد مخصصة وتعديل عناوين IP بما يتناسب مع إعداد شبكتك المحلية.العتاد
نوصي باستخدام مواصفات العتاد نفسها لجميع نسخ Server Pro المشاركة في التوسّع الأفقي. تنطبق التوصيات العامة بشأن مواصفات العتاد على نسخ Server Pro.ترقية Server Pro
كجزء من عملية الترقية، يشغّل Server Pro عمليات ترحيل قاعدة البيانات تلقائيًا. وهذه العمليات غير مصممة لتُشغَّل من نسخ متعددة بالتوازي. يجب أن تنتهي عمليات الترحيل قبل بدء تطبيق الويب الفعلي. يمكنك إما التحقق من السجلات بحثًا عن إدخالFinished migrations أو الانتظار حتى يبدأ التطبيق في قبول حركة المرور.
تبدو إجراءات الترقية كما يلي:
- جدولة نافذة صيانة
- إيقاف جميع نسخ Server Pro
- أخذ نسخة احتياطية متسقة كما هو موضح في التوثيق
- تشغيل نسخة واحدة من Server Pro بالإصدار الجديد
- التحقق من أن النسخة الجديدة تعمل كما هو متوقع
- تشغيل النسخ الأخرى بالإصدار الجديد

