bin/init --tls, NGINX_* i TLS_* w overleaf.rc) nie ma tu odpowiednika; informacje dla Toolkit znajdziesz na stronie Proxy TLS.
Co musi robić proxy
- Przekazywać WebSockety (
/socket.io). - Zezwalać na żądania trwające 10 minut (długie kompilacje) i treści żądań o rozmiarze 50 MB (przesyłanie plików) lub
MAX_UPLOAD_SIZE. - Utrzymywać limit czasu bezczynnego połączenia keep-alive w kierunku podów poniżej 65 sekund, czyli limitu czasu nginx w podzie.
- Wysyłać
X-Forwarded-ForiX-Forwarded-Proto: https. - Przy kilku replikach utrzymywać użytkownika na jednej replice, zobacz Skalowanie poziome.
ConfigMap
X-Forwarded-Proto: https z zaufanego adresu Ayakaleaf Pro uznaje, że żądania przychodzą przez HTTP, i nie ustawia bezpiecznego ciasteczka sesji: logowanie kończy się wtedy niepowodzeniem. Ustawiaj OVERLEAF_SECURE_COOKIE tylko wtedy, gdy użytkownicy faktycznie łączą się z witryną przez HTTPS; dowolna wartość je włącza, również "false".
Przykład z HAProxy
Aby kończyć HTTPS w DaemonSet HAProxy ze strony Skalowanie poziome, umieść certyfikat i jego klucz w jednym pliku PEM oraz w Secret:80-haproxy.yaml:
80-haproxy.yaml (changes)
config-hash, aby HAProxy uruchomił się ponownie, a następnie ustaw ConfigMap jak powyżej i uruchom ponownie repliki.
Przekierowanie zachowuje port żądania: sprawdza się przy load balancerze na portach 80 i 443, ale na NodePortach kieruje http://host:30081 do https://host:30081. Bez load balancera z przodu pomiń wiersz przekierowania i podaj użytkownikom adres https://...:30443.
Przetestowano na Kubernetes
Na Kubernetes 1.37 z trzema replikami i HAProxy kończącym HTTPS jak powyżej, zOVERLEAF_SITE_URL ustawionym na https:// i OVERLEAF_SECURE_COOKIE: użytkownicy aktywowali konta przez linki https://, logowali się z ciasteczkiem sesji oznaczonym jako Secure, przesyłali i kompilowali projekty z pobranym PDF, pozostawali na swojej replice, otwierali WebSocket edytora (wss) oraz klonowali i wypychali zmiany za pomocą Git przez HTTPS. Żądania http:// na NodePort były przekierowywane do https:// z tym samym portem, zgodnie z powyższym opisem.
