Přeskočit na obsah

Reverzní proxy a URL base

Nastavení

Dej HolyArrs na adresu jako https://home.example/holyarrs za svou reverzní proxy.

Reverzní proxy je webový server před tvými aplikacemi, který posílá každou adresu do správného kontejneru. URL base je cesta, pod kterou HolyArrs běží.

  1. Přidej cestu do svého Compose souboru:

    services:
    holyarrs:
    environment:
    - HOLYARRS_URL_BASE=/holyarrs
  2. Restartuj kontejner.

  3. Přidej pravidlo proxy z části Příklady proxy.

  4. Otevři https://home.example/holyarrs/. Měl bys vidět přihlašovací stránku. Settings > This app (Nastavení > Tato aplikace) ukazuje použitou cestu.

Kde nastavit cestu

Odkaz na Kde nastavit cestu
Kde Kdy se projeví
HOLYARRS_URL_BASE Při spuštění. Má přednost před ostatními.
parametr -url-base /holyarrs Při spuštění, když proměnná není nastavená.
Settings > This app Při dalším spuštění, jen když proměnná i parametr nejsou nastavené.

nginx-proxy-manager. Vytvoř proxy host pro svou doménu a pak přidej vlastní location:

  • Location: /holyarrs
  • Forward hostname holyarrs, port 6262. Bez lomítka na konci, jinak se cesta odřízne.
  • V ozubeném kolečku té 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. Nepřidávej 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. Použij handle. handle_path cestu odřízne.

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

Názvy hostitelů a adresy proxy

Odkaz na Názvy hostitelů a adresy proxy
  • Když se lidé k HolyArrs připojují přes název hostitele, přidej ho do HOLYARRS_ALLOWED_HOSTS.
  • Když proxy přidává X-Forwarded-For, přidej adresu proxy do HOLYARRS_TRUSTED_PROXIES. Bez toho přihlášení nepozná, kdo je v tvé domácí síti.

Když to nefunguje

Odkaz na Když to nefunguje
Příznak Příčina Řešení
Každá stránka hlásí, že nebyla nalezena Proxy odřezává cestu Odeber nastavení odřezávání nebo lomítko na konci.
Živé aktualizace nikdy nepřijdou Proxy ukládá odpovědi do vyrovnávací paměti Vypni ukládání do vyrovnávací paměti (proxy_buffering off, flush_interval -1).
Uložená cesta tě zamkla venku Uložená cesta je špatná Spusť s HOLYARRS_URL_BASE=/, aby se ignorovala.
Přihlášení tě bere jako někoho mimo tvou síť Proxy není důvěryhodná Posílej X-Real-IP a X-Forwarded-For a nastav HOLYARRS_TRUSTED_PROXIES.

Další řešení: Řešení potíží.

Pravidla pro cestu
  • Povolené znaky: písmena, číslice, -, _, . a /. Žádné .. ani //.
  • holyarrs, /holyarrs i /holyarrs/ znamenají /holyarrs.
  • Uložená cesta, která není platná, se ignoruje.
  • Pod cestu se přesune všechno: stránky, API, živé aktualizace, přihlášení a odkazy, které HolyArrs sestavuje (odkazy s pozvánkou, feed kalendáře).
  • /healthz a /readyz odpovídají i v kořeni, takže vlastní kontrola zdraví v image dál funguje.
  • Jakákoli jiná adresa mimo cestu odpoví, že nebyla nalezena.
Co musí proxy umět
Požadavek Proč
Předat cestu beze změny HolyArrs směruje podle celé cesty.
Zachovat hlavičku Host Kontroly hostitele a sestavené odkazy ji používají.
Žádná vyrovnávací paměť odpovědí Živé aktualizace se streamují jednou otevřenou odpovědí.
Dlouhý timeout čtení (1 h) Stream živých aktualizací zůstává otevřený.

HolyArrs je zdarma. Pokud ti ušetřil čas, dej mu hvězdičku na GitHubu, podpoř ho sponzorstvím nebo kup mi kávu.