bin/init --tls, NGINX_* và TLS_* trong overleaf.rc) không có phần tương ứng; xem Proxy TLS cho Toolkit.
Proxy phải làm gì
- Chuyển tiếp WebSocket (
/socket.io). - Cho phép các yêu cầu kéo dài 10 phút (biên dịch lâu) và phần thân yêu cầu 50 MB (tải lên), hoặc
MAX_UPLOAD_SIZE. - Giữ thời gian chờ keep-alive khi rảnh hướng tới các pod dưới 65 giây, là thời gian chờ của nginx trong pod.
- Gửi
X-Forwarded-ForvàX-Forwarded-Proto: https. - Với nhiều replica, giữ người dùng trên một replica, xem Mở rộng theo chiều ngang.
ConfigMap
X-Forwarded-Proto: https từ một địa chỉ đáng tin cậy, Ayakaleaf Pro sẽ cho rằng các yêu cầu đến qua HTTP và không đặt cookie phiên bảo mật: khi đó việc đăng nhập sẽ thất bại. Chỉ đặt OVERLEAF_SECURE_COOKIE khi người dùng thực sự truy cập trang qua HTTPS; bất kỳ giá trị nào cũng bật nó, kể cả "false".
Ví dụ HAProxy
Để kết thúc HTTPS trong DaemonSet HAProxy của Mở rộng theo chiều ngang, hãy đưa chứng chỉ và khóa của nó vào một tệp PEM và một Secret:80-haproxy.yaml:
80-haproxy.yaml (changes)
config-hash để HAProxy khởi động lại, sau đó đặt ConfigMap như trên và khởi động lại các replica.
Việc chuyển hướng giữ nguyên cổng của yêu cầu: điều này phù hợp với một load balancer trên cổng 80 và 443, nhưng trên các NodePort nó sẽ chuyển http://host:30081 tới https://host:30081. Nếu không có load balancer ở phía trước, hãy bỏ dòng chuyển hướng và cung cấp cho người dùng địa chỉ https://...:30443.
Đã kiểm thử trên Kubernetes
Trên Kubernetes 1.37 với ba replica và HAProxy kết thúc HTTPS như trên, vớiOVERLEAF_SITE_URL dùng https:// và OVERLEAF_SECURE_COOKIE: người dùng kích hoạt tài khoản qua các liên kết https://, đăng nhập với cookie phiên được đánh dấu Secure, tải lên và biên dịch dự án và lấy được PDF, ở lại trên replica của họ, mở WebSocket của trình soạn thảo (wss), và clone và push bằng Git qua HTTPS. Các yêu cầu http:// trên NodePort được chuyển hướng tới https:// với cùng cổng, như mô tả ở trên.
