لغة واحدة
عدة لغات على نطاقات فرعية
1
وجّه مضيف كل لغة إلى Ayakaleaf Pro
أضف اسم DNS لكل لغة ووجّهها جميعًا إلى Ayakaleaf Pro مع شهادة تغطيها كلها، على سبيل المثال
*.example.com. يجب أن يمرّر الـ ingress أو موازن الأحمال لديك ترويسة Host دون تغيير، وهو ما يفعله ingress-nginx وHAProxy افتراضيًا.يجب أن يصل المستخدمون إلى مضيفات اللغات عبر المنافذ القياسية (https://cn.example.com، وليس https://cn.example.com:30443): إذ يقارن Ayakaleaf Pro اسم المضيف دون المنفذ.2
ConfigMap
30-config.yaml (additions)
COOKIE_DOMAIN لملف تعريف ارتباط تسجيل الدخول أن يعمل على مضيف كل لغة. ضع JSON بين علامتي اقتباس مفردتين. يؤدي JSON غير الصالح في OVERLEAF_LANG_DOMAIN_MAPPING إلى إيقاف كل خدمات الـ pod عند بدء التشغيل، لذا تحقّق باستخدام kubectl -n overleaf get pod بعد إعادة التشغيل.عدة نسخ متماثلة
تُحدَّد اللغة من اسم المضيف في كل طلب، لذا فهي لا تعتمد على النسخة المتماثلة (replica). يُضبط ملف تعريف الارتباط الثابت (sticky cookie) الخاص بموازن الأحمال لكل اسم مضيف ما لم تحدّد له نطاقًا، لذا قد يؤدي تبديل اللغة إلى نقل المستخدم إلى نسخة متماثلة أخرى؛ لكن جلسته محفوظة في Redis وتبقى صالحة.الاختبار على Kubernetes
على Kubernetes 1.37 خلف HAProxy، معOVERLEAF_LANG_DOMAIN_MAPPING الذي يربط مضيف الموقع بالإنجليزية، ومضيف de. بالألمانية، ومضيف fr. مع منفذ NodePort :30081 بالفرنسية: عرض مضيف الموقع الإنجليزية، ومضيف de. الألمانية، بينما عاد مضيف fr. مع المنفذ إلى الإنجليزية، كما هو موضّح أعلاه.
