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.
Ustaw ścieżkę
Link do: Ustaw ścieżkę-
Dodaj ścieżkę do pliku Compose:
services:holyarrs:environment:- HOLYARRS_URL_BASE=/holyarrs -
Zrestartuj kontener.
-
Dodaj regułę proxy z sekcji Przykłady proxy.
-
Otwórz
https://home.example/holyarrs/. Zobaczysz stronę logowania. Settings > This app (Ustawienia > Ta aplikacja) pokazuje używaną ścieżkę.
Opcje
Link do: OpcjeGdzie 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. |
Przykłady proxy
Link do: Przykłady proxynginx-proxy-manager. Utwórz proxy host dla swojej domeny, a potem dodaj własną lokalizację:
- Location:
/holyarrs - Forward hostname
holyarrs, port6262. 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=6262Caddy. 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 doHOLYARRS_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 zaawansowanychZasady dla ścieżki
- Dozwolone znaki: litery, cyfry,
-,_,.i/. Bez..i//. holyarrs,/holyarrsi/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).
/healthzi/readyzodpowiadają 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. |
Powiązane strony
Link do: Powiązane stronyHolyArrs jest darmowy. Jeśli oszczędził ci czas, daj mu gwiazdkę na GitHubie, zostań sponsorem albo postaw mi kawę.