Przejdź do głównej zawartości

Reverse proxy i URL base

Konfiguracja

Umieść HolyArrs pod adresem w rodzaju https://home.example/holyarrs za swoim reverse proxy.

Reverse proxy to serwer WWW przed twoimi aplikacjami, który kieruje każdy adres do właściwego kontenera. URL base to ścieżka, pod którą działa HolyArrs.

  1. Dodaj ścieżkę do pliku Compose:

    services:
    holyarrs:
    environment:
    - HOLYARRS_URL_BASE=/holyarrs
  2. Zrestartuj kontener.

  3. Dodaj regułę proxy z sekcji Przykłady proxy.

  4. Otwórz https://home.example/holyarrs/. Zobaczysz stronę logowania. Settings > This app (Ustawienia > Ta aplikacja) pokazuje używaną ścieżkę.

Gdzie ustawić ścieżkę

Link do: Gdzie ustawić ścieżkę
Gdzie Kiedy zadziała
HOLYARRS_URL_BASE Przy starcie. Ma pierwszeństwo przed resztą.
flaga -url-base /holyarrs Przy starcie, gdy zmienna nie jest ustawiona.
Settings > This app Przy następnym starcie, tylko gdy zmienna i flaga nie są ustawione.

nginx-proxy-manager. Utwórz proxy host dla swojej domeny, a potem dodaj własną lokalizację:

  • Location: /holyarrs
  • Forward hostname holyarrs, port 6262. Bez ukośnika na końcu, bo inaczej ścieżka zostanie obcięta.
  • W oknie z ikoną zębatki tej lokalizacji:
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. Nie dodawaj 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. Użyj handle. handle_path obcina ścieżkę.

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

Nazwy hostów i adresy proxy

Link do: Nazwy hostów i adresy proxy
  • Jeśli ludzie wchodzą do HolyArrs przez nazwę hosta, dodaj ją do HOLYARRS_ALLOWED_HOSTS.
  • Jeśli proxy dodaje X-Forwarded-For, dodaj adres proxy do HOLYARRS_TRUSTED_PROXIES. Bez tego logowanie nie rozpozna, kto jest w twojej sieci domowej.

Jeśli to nie działa

Link do: Jeśli to nie działa
Objaw Przyczyna Rozwiązanie
Każda strona mówi, że nie znaleziono Proxy obcina ścieżkę Usuń ustawienie obcinania albo ukośnik na końcu.
Aktualizacje na żywo nigdy nie docierają Proxy buforuje odpowiedzi Wyłącz buforowanie (proxy_buffering off, flush_interval -1).
Zapisana ścieżka zablokowała ci dostęp Zapisana ścieżka jest błędna Uruchom z HOLYARRS_URL_BASE=/, żeby ją zignorować.
Logowanie traktuje cię jak osobę spoza twojej sieci Proxy nie jest zaufane Wysyłaj X-Real-IP i X-Forwarded-For oraz ustaw HOLYARRS_TRUSTED_PROXIES.

Więcej rozwiązań: Rozwiązywanie problemów.

Dla zaawansowanych

Link do: Dla zaawansowanych
Zasady dla ścieżki
  • Dozwolone znaki: litery, cyfry, -, _, . i /. Bez .. i //.
  • holyarrs, /holyarrs i /holyarrs/ oznaczają to samo: /holyarrs.
  • Zapisana ścieżka, która jest nieprawidłowa, jest ignorowana.
  • Wszystko przenosi się pod ścieżkę: strony, API, aktualizacje na żywo, logowanie i linki budowane przez HolyArrs (linki z zaproszeniami, kanał kalendarza).
  • /healthz i /readyz odpowiadają też pod adresem głównym, więc wbudowana kontrola kondycji image’u nadal działa.
  • Każdy inny adres poza ścieżką odpowiada „nie znaleziono“.
Co musi robić proxy
Wymóg Dlaczego
Przekazywać ścieżkę bez zmian HolyArrs kieruje ruch według pełnej ścieżki.
Zachować nagłówek Host Używają go kontrole hosta i budowane linki.
Bez buforowania odpowiedzi Aktualizacje na żywo płyną jedną otwartą odpowiedzią.
Długi timeout odczytu (1 h) Strumień aktualizacji na żywo pozostaje otwarty.

HolyArrs jest darmowy. Jeśli oszczędził ci czas, daj mu gwiazdkę na GitHubie, zostań sponsorem albo postaw mi kawę.