Saltar al contingut

Reverse proxy i URL base

Configuració

Posa HolyArrs en una adreça com https://home.example/holyarrs darrere del teu reverse proxy.

Un reverse proxy és el servidor web que hi ha davant de les teves apps i envia cada adreça al contenidor correcte. La URL base és la ruta sota la qual viu HolyArrs.

  1. Afegeix la ruta al teu fitxer Compose:

    services:
    holyarrs:
    environment:
    - HOLYARRS_URL_BASE=/holyarrs
  2. Reinicia el contenidor.

  3. Afegeix una regla de proxy dels Exemples de proxy.

  4. Obre https://home.example/holyarrs/. Hauries de veure la pàgina d’inici de sessió. Settings > This app (Paràmetres > Aquesta app) mostra la ruta en ús.

On Quan té efecte
HOLYARRS_URL_BASE En iniciar. Preval sobre les altres.
Indicador -url-base /holyarrs En iniciar, quan la variable no està definida.
Settings > This app A l’inici següent, només quan la variable i l’indicador no estan definits.

nginx-proxy-manager. Crea un proxy host per al teu domini i després afegeix una ubicació personalitzada:

  • Location: /holyarrs
  • Nom de host de destinació holyarrs, port 6262. Sense barra al final, o la ruta es treu.
  • Al quadre de l’engranatge d’aquesta ubicació:
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. No afegeixis cap 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. Fes servir handle. handle_path treu la ruta.

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

Noms de host i adreces de proxy

Enllaç a Noms de host i adreces de proxy
  • Si la gent arriba a HolyArrs per un nom de host, afegeix-lo a HOLYARRS_ALLOWED_HOSTS.
  • Si el proxy afegeix X-Forwarded-For, afegeix l’adreça del proxy a HOLYARRS_TRUSTED_PROXIES. Sense això, l’inici de sessió no pot saber qui és a la teva xarxa de casa.
Símptoma Causa Solució
Totes les pàgines diuen que no es troben El proxy treu la ruta Treu el paràmetre que la treu o la barra del final.
Les actualitzacions en directe no arriben mai El proxy emmagatzema les respostes en un buffer Desactiva el buffering (proxy_buffering off, flush_interval -1).
Una ruta desada t’ha bloquejat l’accés La ruta desada és incorrecta Inicia amb HOLYARRS_URL_BASE=/ per ignorar-la.
L’inici de sessió et tracta com si fossis fora de la teva xarxa El proxy no és de confiança Envia X-Real-IP i X-Forwarded-For, i defineix HOLYARRS_TRUSTED_PROXIES.

Més solucions: Resolució de problemes.

Regles de la ruta
  • Caràcters permesos: lletres, xifres, -, _, . i /. Sense .. ni //.
  • holyarrs, /holyarrs i /holyarrs/ volen dir tots /holyarrs.
  • Una ruta desada que no és vàlida s’ignora.
  • Tot es mou sota la ruta: les pàgines, l’API, les actualitzacions en directe, l’inici de sessió i els enllaços que construeix HolyArrs (enllaços d’invitació, el feed del calendari).
  • /healthz i /readyz també responen a l’arrel, de manera que la comprovació de salut de la imatge segueix funcionant.
  • Qualsevol altra adreça fora de la ruta respon que no es troba.
Què ha de fer el proxy
Necessitat Per què
Passar la ruta tal com és HolyArrs encamina per la ruta completa.
Mantenir la capçalera Host Les comprovacions de host i els enllaços construïts la fan servir.
Sense buffer de respostes Les actualitzacions en directe es transmeten per una sola resposta oberta.
Temps d’espera de lectura llarg (1 h) El flux d’actualitzacions en directe es manté obert.

HolyArrs és gratis. Si t'ha estalviat temps, dona-li una estrella a GitHub, patrocina'l o convida'm a un cafè.