Skip to main content
Innerhalb des Pods stellt der nginx des Containers einfaches HTTP auf Port 80 bereit. HTTPS endet vor den Pods: in Ihrem Ingress-Controller, Ihrem Cloud-Load-Balancer oder in HAProxy wie unter Horizontale Skalierung. Der NGINX-Proxy des Toolkits (bin/init --tls, NGINX_* und TLS_* in overleaf.rc) hat kein Gegenstück; für das Toolkit siehe TLS-Proxy.

Was der Proxy leisten muss

  • WebSockets (/socket.io) durchleiten.
  • Anfragen von 10 Minuten (lange Kompilierungen) und Anfragekörper von 50 MB (Uploads) bzw. MAX_UPLOAD_SIZE zulassen.
  • Sein Idle-Keep-Alive-Timeout gegenüber den Pods unter 65 Sekunden halten, dem Timeout des nginx im Pod.
  • X-Forwarded-For und X-Forwarded-Proto: https senden.
  • Bei mehreren Replikaten einen Benutzer auf einem Replikat halten, siehe Horizontale Skalierung.

ConfigMap

Ohne X-Forwarded-Proto: https von einer vertrauenswürdigen Adresse nimmt Ayakaleaf Pro an, dass Anfragen über HTTP eintreffen, und setzt sein sicheres Sitzungs-Cookie nicht: Anmeldungen schlagen dann fehl. Setzen Sie OVERLEAF_SECURE_COOKIE nur, wenn Benutzer die Website tatsächlich über HTTPS erreichen; jeder Wert aktiviert es, auch "false".

HAProxy-Beispiel

Um HTTPS im HAProxy-DaemonSet aus Horizontale Skalierung zu terminieren, legen Sie das Zertifikat und seinen Schlüssel in eine PEM-Datei und ein Secret:
Ändern Sie dann 80-haproxy.yaml:
80-haproxy.yaml (changes)
Erhöhen Sie config-hash, damit HAProxy neu startet, setzen Sie dann die ConfigMap wie oben und starten Sie die Replikate neu. Die Weiterleitung behält den Port der Anfrage bei: Das passt zu einem Load Balancer auf den Ports 80 und 443, auf den NodePorts leitet sie jedoch http://host:30081 an https://host:30081 weiter. Ohne vorgeschalteten Load Balancer lassen Sie die Weiterleitungszeile weg und geben den Benutzern die Adresse https://...:30443.

Auf Kubernetes getestet

Auf Kubernetes 1.37 mit drei Replikaten und HAProxy, das HTTPS wie oben terminiert, mit OVERLEAF_SITE_URL auf https:// und OVERLEAF_SECURE_COOKIE: Benutzer aktivierten ihr Konto über https://-Links, meldeten sich mit einem als Secure markierten Sitzungs-Cookie an, luden Projekte hoch und kompilierten sie, wobei das PDF abgerufen wurde, blieben auf ihrem Replikat, öffneten den WebSocket des Editors (wss) und klonten und pushten mit Git über HTTPS. http://-Anfragen auf dem NodePort wurden wie oben beschrieben mit demselben Port an https:// weitergeleitet.
Zuletzt geändert am 2. November 2026