Proxy reverso
Um proxy reverso fica na frente do Semaphore e termina o TLS, de modo que navegadores e runners falam com ele por HTTPS enquanto o próprio Semaphore escuta em HTTP simples na interface local. O Semaphore também possui TLS integrado, portanto um proxy não é estritamente necessário. Use um quando você já operar um proxy, precisar de um certificado gerenciado em outro lugar, quiser o Semaphore em um subcaminho ou servir vários serviços a partir de um único host.
O que toda configuração precisa tratar
Qualquer que seja o proxy escolhido, três coisas precisam estar corretas, ou partes da interface quebram de maneiras difíceis de diagnosticar:
- Upgrade de WebSocket em
/api/ws. Os logs de tarefa são transmitidos por um WebSocket. Sem os cabeçalhos de upgrade, a janela de log permanece vazia enquanto a tarefa é executada. - Um tempo limite de leitura maior que o intervalo de ping. O Semaphore envia um ping para um WebSocket ocioso a cada dois minutos, aproximadamente. Um proxy que fecha conexões ociosas após 60 segundos desconecta a visualização de log repetidamente.
web_hostdefinido com a URL pública. O Semaphore monta as URLs de redirecionamento, define a flagSecuredo cookie e verifica a origem da requisição a partir desse valor. Se ele não corresponder ao que o navegador usou, o login falha. Consulte Configuração.
Nesta seção
| Página | O que aborda |
|---|---|
| nginx | Um bloco server com TLS, o upgrade de WebSocket e os cabeçalhos encaminhados. |
| Apache | Um virtual host usando mod_proxy e mod_proxy_wstunnel. |
| Caddy | Um Caddyfile mínimo com certificados automáticos. |
Por onde começar
Escolha o proxy que você já opera. Se não tiver preferência nem um proxy existente, o Caddy é o caminho mais curto: ele obtém e renova os certificados sozinho.
Para proteção além do TLS, consulte Segurança de rede.