Skip to main content
Dentro do pod, o nginx do contêiner serve HTTP simples na porta 80. O HTTPS termina à frente dos pods: no seu ingress controller, no balanceador de carga da sua nuvem ou no HAProxy, como em Escalonamento horizontal. O proxy NGINX do Toolkit (bin/init --tls, NGINX_* e TLS_* em overleaf.rc) não tem equivalente; veja Proxy TLS para o Toolkit.

O que o proxy precisa fazer

  • Repassar WebSockets (/socket.io).
  • Permitir requisições de 10 minutos (compilações longas) e corpos de requisição de 50 MB (uploads), ou MAX_UPLOAD_SIZE.
  • Manter seu tempo limite de keep-alive ocioso em relação aos pods abaixo de 65 segundos, o tempo limite do nginx no pod.
  • Enviar X-Forwarded-For e X-Forwarded-Proto: https.
  • Com várias réplicas, manter um usuário em uma única réplica, veja Escalonamento horizontal.

ConfigMap

Sem X-Forwarded-Proto: https vindo de um endereço confiável, o Ayakaleaf Pro entende que as requisições chegam por HTTP e não define seu cookie de sessão seguro: os logins então falham. Defina OVERLEAF_SECURE_COOKIE apenas quando os usuários realmente acessarem o site por HTTPS; qualquer valor o ativa, inclusive "false".

Exemplo com HAProxy

Para terminar o HTTPS no DaemonSet do HAProxy de Escalonamento horizontal, coloque o certificado e sua chave em um único arquivo PEM e em um Secret:
Em seguida, altere 80-haproxy.yaml:
80-haproxy.yaml (changes)
Altere o config-hash para que o HAProxy reinicie e, em seguida, defina o ConfigMap como acima e reinicie as réplicas. O redirecionamento mantém a porta da requisição: ele é adequado para um balanceador de carga nas portas 80 e 443, mas nas NodePorts ele envia http://host:30081 para https://host:30081. Sem um balanceador de carga à frente, omita a linha de redirecionamento e forneça aos usuários o endereço https://...:30443.

Testado no Kubernetes

No Kubernetes 1.37 com três réplicas e o HAProxy terminando o HTTPS como acima, com OVERLEAF_SITE_URL em https:// e OVERLEAF_SECURE_COOKIE: os usuários foram ativados por meio de links https://, fizeram login com um cookie de sessão marcado como Secure, enviaram e compilaram projetos com o PDF obtido, permaneceram em sua réplica, abriram o WebSocket do editor (wss) e clonaram e fizeram push com o Git por HTTPS. As requisições http:// na NodePort foram redirecionadas para https:// com a mesma porta, conforme descrito acima.
Última modificação em 2 de novembro de 2026