Skip to content
Esta página foi traduzida com IA e pode conter imprecisões. Ajude a melhorar no GitHub.

Gately v0.5.2 lançado ​

20 de outubro de 2026

Um IP público tem uma porta 443, e VPNs, sites e proxies querem todos usá-la. A solução comum é colocar haproxy ou nginx stream na frente para rotear por domínio e um nginx atrás para o proxy reverso: três programas, três configurações. A v0.5.2 permite que o Gately faça tudo isso em um só programa: roteamento por domínio, proxy reverso e login com TOTP, com desempenho à altura de haproxy + nginx.

Baixar a v0.5.2 · GitHub Release

Roteamento SNI: vários serviços na porta 443 ​

O redirecionamento de portas tem um novo modo "Roteamento SNI" (pedido por um usuário no grupo do Telegram, #3):

  • Ele lê o domínio no handshake TLS e repassa a conexão inteira ao backend escolhido pelo domínio. O TLS não é descriptografado aqui, então os certificados ficam nos backends;
  • Os domínios podem ser exatos, um curinga *.example.com ou *. Conexões sem correspondência, sem SNI ou que não são TLS vão para o destino padrão e são fechadas quando não há um;
  • O protocolo PROXY v1 / v2 é definido por rota, para os backends receberem o endereço real do cliente;
  • O cartão da regra mostra quantas conexões cada rota e o destino padrão receberam.

Veja Redirecionamento de portas para um exemplo completo de substituição do haproxy.

Os Serviços Web podem substituir o nginx ​

  • Backends por caminho: envie um prefixo de caminho para outro conjunto de backends ou adicione cabeçalhos de requisição só para esse caminho, como um location do nginx;
  • Autenticação delegada: delegue a autenticação ao Authelia ou a um serviço parecido, como o auth_request, e proteja só caminhos como /admin;
  • Backends HTTPS recebem o domínio acessado como SNI: necessário quando o backend roteia por SNI, por exemplo o vhost_https do frp;
  • {host} em redirecionamentos: uma única regra com https://{host} envia HTTP para HTTPS em todos os domínios;
  • Sites estáticos: URLs sem extensão (VitePress e similares), página 404 personalizada e cabeçalhos de resposta;
  • Editar um site não reinicia mais o listener: as conexões abertas (inclusive WebSocket) continuam ativas, as estatísticas são mantidas e uma nova configuração inválida deixa a anterior atendendo.

Veja "Substituindo haproxy e nginx" em Serviços Web para saber como as configurações do nginx se traduzem.

Usuários compartilhados: TOTP e login único ​

Adicione usuários compartilhados em "Serviços Web → Configurações globais", ative o TOTP para cada um (lendo um QR code) e defina um domínio de login único, como example.com, para que entrar em um site valha para todos os sites sob ele. Um site só precisa marcar "Usar usuários compartilhados". Se você não quer rodar o Authelia só para isso, o recurso já vem embutido.

Desempenho ​

haproxy + nginx e Gately comparados na mesma máquina, cada um limitado a 2 núcleos de CPU, com a configuração de um servidor real (90 domínios, protocolo PROXY v2):

Cenáriohaproxy + nginxGately
Proxy reverso HTTPS, keep-alive, respostas de 1 KB14.767 req/s26.434 req/s
Uma nova conexão TLS a cada requisição2.557 req/s3.448 req/s
Respostas de 1 MB1.053 MB/s1.585 MB/s
Repasse SNI de um fluxo TLS2.927 MB/s4.962 MB/s
Repasse SNI, novas conexões por segundo6.334 /s6.266 /s

Em memória, o Gately usa cerca de 110 MB, e haproxy e nginx juntos cerca de 42 MB. O método, os números completos e as ressalvas estão no README.

Notas de atualização ​

  • Docker: baixe a nova imagem e recrie o contêiner. Binário: substitua o executável e reinicie.
  • Versões anteriores à v0.5.2 não entendem regras de roteamento SNI. Desative ou exclua essas regras antes de voltar para uma versão anterior: uma versão antiga as trata como redirecionamento comum, e uma regra sem destino padrão a derruba na primeira conexão.
  • Ao substituir o haproxy, pare o haproxy antes de ativar a regra do Gately, porque só um programa pode escutar em uma porta.

Dúvidas e ideias são bem-vindas nas GitHub Issues ou no grupo do Telegram.

Distribuído sob a licença Apache-2.0.