bin/init --tls, NGINX_* a TLS_* v overleaf.rc) zde nemá obdobu; pro Toolkit viz TLS proxy.
Co musí proxy dělat
- Propouštět WebSockety (
/socket.io). - Povolit požadavky trvající 10 minut (dlouhé kompilace) a těla požadavků o velikosti 50 MB (nahrávání), případně
MAX_UPLOAD_SIZE. - Udržovat svůj idle keep-alive timeout směrem k podům pod 65 sekundami, což je timeout nginxu v podu.
- Posílat
X-Forwarded-ForaX-Forwarded-Proto: https. - Při více replikách držet uživatele na jedné replice, viz Horizontální škálování.
ConfigMap
X-Forwarded-Proto: https z důvěryhodné adresy se Ayakaleaf Pro domnívá, že požadavky přicházejí přes HTTP, a nenastaví svou zabezpečenou session cookie: přihlášení pak selhávají. OVERLEAF_SECURE_COOKIE nastavte pouze tehdy, když uživatelé k webu skutečně přistupují přes HTTPS; zapne ji jakákoli hodnota, i "false".
Příklad s HAProxy
Chcete-li ukončovat HTTPS v DaemonSetu HAProxy z horizontálního škálování, vložte certifikát a jeho klíč do jednoho souboru PEM a do Secretu:80-haproxy.yaml:
80-haproxy.yaml (changes)
config-hash, aby se HAProxy restartovala, poté nastavte ConfigMap podle výše uvedeného a restartujte repliky.
Přesměrování zachovává port požadavku: hodí se pro load balancer na portech 80 a 443, ale na NodePortech přesměruje http://host:30081 na https://host:30081. Bez load balanceru před clusterem řádek s přesměrováním vynechte a uživatelům dejte adresu https://...:30443.
Testováno na Kubernetes
Na Kubernetes 1.37 se třemi replikami a HAProxy ukončující HTTPS podle výše uvedeného, sOVERLEAF_SITE_URL na https:// a s OVERLEAF_SECURE_COOKIE: uživatelé se aktivovali přes odkazy https://, přihlásili se se session cookie označenou Secure, nahráli a zkompilovali projekty a stáhli PDF, zůstali na své replice, otevřeli WebSocket editoru (wss) a klonovali a pushovali pomocí Gitu přes HTTPS. Požadavky http:// na NodePortu byly přesměrovány na https:// se stejným portem, jak je popsáno výše.
