Skip to main content
Bên trong pod, nginx của container phục vụ HTTP thuần trên cổng 80. HTTPS kết thúc ở phía trước các pod: trong ingress controller, load balancer của nhà cung cấp đám mây, hoặc HAProxy như trong Mở rộng theo chiều ngang. Proxy NGINX của Toolkit (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-For và 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

Nếu không có 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:
Sau đó thay đổi 80-haproxy.yaml:
80-haproxy.yaml (changes)
Tăng 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ới OVERLEAF_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.
Lần sửa đổi cuối 2 tháng 11, 2026