Skip to main content
داخل الـ pod، يقدّم nginx الخاص بالحاوية HTTP عاديًا على المنفذ 80. أما HTTPS فينتهي أمام الـ pods: في متحكّم الـ ingress لديك، أو في موازن الأحمال السحابي لديك، أو في HAProxy كما في التوسّع الأفقي. لا يوجد مقابل لوكيل NGINX الخاص بـ Toolkit ‏(bin/init --tls، وNGINX_* وTLS_* في overleaf.rc)؛ راجع وكيل TLS بالنسبة إلى Toolkit.

ما يجب على الوكيل فعله

  • تمرير اتصالات WebSocket ‏(/socket.io).
  • السماح بطلبات مدتها 10 دقائق (عمليات الترجمة الطويلة) وأجسام طلبات بحجم 50 MB (عمليات الرفع)، أو MAX_UPLOAD_SIZE.
  • إبقاء مهلة keep-alive للاتصالات الخاملة نحو الـ pods أقل من 65 ثانية، وهي مهلة nginx داخل الـ pod.
  • إرسال X-Forwarded-For وX-Forwarded-Proto: https.
  • مع عدة نسخ متماثلة، إبقاء المستخدم على نسخة متماثلة واحدة، راجع التوسّع الأفقي.

ConfigMap

من دون X-Forwarded-Proto: https من عنوان موثوق، يعتقد Ayakaleaf Pro أن الطلبات تصل عبر HTTP ولا يضبط ملف تعريف ارتباط الجلسة الآمن: فتفشل عمليات تسجيل الدخول عندئذٍ. اضبط OVERLEAF_SECURE_COOKIE فقط عندما يصل المستخدمون فعلًا إلى الموقع عبر HTTPS؛ فأي قيمة تفعّله، حتى "false".

مثال على HAProxy

لإنهاء HTTPS في الـ DaemonSet الخاص بـ HAProxy من التوسّع الأفقي، ضع الشهادة ومفتاحها في ملف PEM واحد وفي Secret:
ثم عدّل 80-haproxy.yaml:
80-haproxy.yaml (changes)
غيّر قيمة config-hash حتى يُعاد تشغيل HAProxy، ثم اضبط الـ ConfigMap كما هو موضّح أعلاه وأعد تشغيل النسخ المتماثلة. تحافظ إعادة التوجيه على منفذ الطلب: وهذا يناسب موازن أحمال على المنفذين 80 و443، لكنها على منافذ NodePort ترسل http://host:30081 إلى https://host:30081. ومن دون موازن أحمال في المقدّمة، احذف سطر إعادة التوجيه وأعطِ المستخدمين العنوان https://...:30443.

الاختبار على Kubernetes

على Kubernetes 1.37 مع ثلاث نسخ متماثلة وHAProxy يُنهي HTTPS كما هو موضّح أعلاه، ومع ضبط OVERLEAF_SITE_URL على https:// وضبط OVERLEAF_SECURE_COOKIE: فعّل المستخدمون حساباتهم عبر روابط https://، وسجّلوا الدخول بملف تعريف ارتباط جلسة مُعلَّم بـ Secure، ورفعوا المشاريع وترجموها مع جلب ملف PDF، وبقوا على نسختهم المتماثلة، وفتحوا WebSocket الخاص بالمحرّر (wss)، واستنسخوا ودفعوا باستخدام Git عبر HTTPS. أما طلبات http:// على منفذ NodePort فقد أُعيد توجيهها إلى https:// مع المنفذ نفسه، كما هو موضّح أعلاه.
آخر تعديل في ٢ نوفمبر ٢٠٢٦