Skip to main content
Внутри пода nginx контейнера обслуживает обычный HTTP на порту 80. HTTPS завершается перед подами: в вашем ingress-контроллере, облачном балансировщике нагрузки или в HAProxy, как в разделе Горизонтальное масштабирование. У NGINX-прокси из Toolkit (bin/init --tls, NGINX_* и TLS_* в overleaf.rc) аналога нет; о Toolkit см. TLS-прокси.

Что должен делать прокси

  • Пропускать WebSocket (/socket.io).
  • Допускать запросы длительностью 10 минут (долгие компиляции) и тела запросов размером 50 МБ (загрузки) или MAX_UPLOAD_SIZE.
  • Держать тайм-аут простоя keep-alive в сторону подов ниже 65 секунд — тайм-аута nginx в поде.
  • Отправлять X-Forwarded-For и X-Forwarded-Proto: https.
  • При нескольких репликах удерживать пользователя на одной реплике, см. Горизонтальное масштабирование.

ConfigMap

Без X-Forwarded-Proto: https с доверенного адреса Ayakaleaf Pro считает, что запросы поступают по HTTP, и не устанавливает защищённую cookie сеанса: в результате вход в систему не работает. Задавайте 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://, входили с cookie сеанса, помеченной как Secure, загружали и компилировали проекты с получением PDF, оставались на своей реплике, открывали WebSocket редактора (wss), а также клонировали и выполняли push через Git по HTTPS. Запросы http:// на NodePort перенаправлялись на https:// с тем же портом, как описано выше.
Последнее изменение 2 ноября 2026 г.