Pular para o conteúdo

Proxy reverso e URL base

Configuração

Coloque o HolyArrs em um endereço como https://home.example/holyarrs atrás do seu proxy reverso.

Um proxy reverso é o servidor web que fica na frente dos seus apps e manda cada endereço para o container certo. A URL base é o caminho onde o HolyArrs fica.

  1. Adicione o caminho ao seu arquivo Compose:

    services:
    holyarrs:
    environment:
    - HOLYARRS_URL_BASE=/holyarrs
  2. Reinicie o container.

  3. Adicione uma regra de proxy de Exemplos de proxy.

  4. Abra https://home.example/holyarrs/. Você deve ver a página de login. Settings > This app (Configurações > Este app) mostra o caminho em uso.

Onde definir o caminho

Link para Onde definir o caminho
Onde Quando vale
HOLYARRS_URL_BASE Ao iniciar. Vence as outras opções.
Flag -url-base /holyarrs Ao iniciar, quando a variável não está definida.
Settings > This app No próximo início, só quando nem a variável nem a flag estão definidas.

nginx-proxy-manager. Crie um proxy host para seu domínio e depois adicione uma custom location:

  • Location: /holyarrs
  • Forward hostname holyarrs, porta 6262. Sem barra no final, senão o caminho é removido.
  • Na caixa da engrenagem dessa location:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
proxy_read_timeout 1h;

Traefik. Não adicione um middleware StripPrefix.

labels:
- traefik.enable=true
- traefik.http.routers.holyarrs.rule=Host(`home.example`) && PathPrefix(`/holyarrs`)
- traefik.http.services.holyarrs.loadbalancer.server.port=6262

Caddy. Use handle. O handle_path remove o caminho.

home.example {
handle /holyarrs* {
reverse_proxy holyarrs:6262 {
flush_interval -1
}
}
}

Nomes de host e endereços de proxy

Link para Nomes de host e endereços de proxy
  • Se as pessoas acessam o HolyArrs por um nome de host, adicione esse nome a HOLYARRS_ALLOWED_HOSTS.
  • Se o proxy adiciona X-Forwarded-For, adicione o endereço do proxy a HOLYARRS_TRUSTED_PROXIES. Sem isso, o login não consegue saber quem está na sua rede de casa.
Sintoma Causa Solução
Todas as páginas dizem que não foram encontradas O proxy remove o caminho Remova a configuração que remove o caminho ou a barra no final.
As atualizações ao vivo nunca chegam O proxy guarda as respostas em buffer Desative o buffer (proxy_buffering off, flush_interval -1).
Um caminho salvo deixou você de fora O caminho salvo está errado Inicie com HOLYARRS_URL_BASE=/ para ignorar o caminho salvo.
O login trata você como se estivesse fora da sua rede O proxy não é confiável para o HolyArrs Envie X-Real-IP e X-Forwarded-For, e defina HOLYARRS_TRUSTED_PROXIES.

Mais soluções: Solução de problemas.

Regras do caminho
  • Caracteres permitidos: letras, dígitos, -, _, . e /. Sem .. nem //.
  • holyarrs, /holyarrs e /holyarrs/ significam /holyarrs.
  • Um caminho salvo que não é válido é ignorado.
  • Tudo passa a ficar no caminho: as páginas, a API, as atualizações ao vivo, o login e os links que o HolyArrs monta (links de convite, o feed do calendário).
  • /healthz e /readyz também respondem na raiz, então a verificação de saúde da própria imagem continua funcionando.
  • Qualquer outro endereço fora do caminho responde que não foi encontrado.
O que o proxy precisa fazer
Necessidade Por quê
Repassar o caminho sem mudar nada O HolyArrs faz o roteamento pelo caminho completo.
Manter o cabeçalho Host As verificações de host e os links montados usam esse cabeçalho.
Sem buffer de respostas As atualizações ao vivo chegam por uma única resposta aberta.
Tempo limite de leitura longo (1 h) O fluxo de atualizações ao vivo fica aberto.

O HolyArrs é gratuito. Se ele poupou seu tempo, dê uma estrela no GitHub, patrocine o projeto ou me pague um café.