Reverse proxy и URL base
Настройка
Постави HolyArrs на адрес като https://home.example/holyarrs зад твоя reverse proxy.
Reverse proxy е уеб сървърът пред приложенията ти, който праща всеки адрес към правилния контейнер. URL base е пътят, под който живее HolyArrs.
Задай пътя
Връзка към Задай пътя-
Добави пътя в твоя Compose файл:
services:holyarrs:environment:- HOLYARRS_URL_BASE=/holyarrs -
Рестартирай контейнера.
-
Добави правило за proxy от Примери за proxy.
-
Отвори
https://home.example/holyarrs/. Трябва да видиш страницата за вход. Settings > This app (Настройки > Това приложение) показва пътя, който се ползва.
Възможности
Връзка към ВъзможностиКъде да зададеш пътя
Връзка към Къде да зададеш пътя| Къде | Кога влиза в сила |
|---|---|
HOLYARRS_URL_BASE |
При старт. Печели пред останалите. |
-url-base /holyarrs flag |
При старт, когато променливата не е зададена. |
| Settings > This app | При следващия старт, само когато променливата и flag-ът не са зададени. |
Примери за proxy
Връзка към Примери за proxynginx-proxy-manager. Направи proxy host за домейна си, после добави custom location:
- Location:
/holyarrs - Forward hostname
holyarrs, порт6262. Без наклонена черта накрая, иначе пътят се маха. - В зъбното колелце на тази 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. Не добавяй StripPrefix middleware.
labels: - traefik.enable=true - traefik.http.routers.holyarrs.rule=Host(`home.example`) && PathPrefix(`/holyarrs`) - traefik.http.services.holyarrs.loadbalancer.server.port=6262Caddy. Ползвай handle. handle_path маха пътя.
home.example { handle /holyarrs* { reverse_proxy holyarrs:6262 { flush_interval -1 } }}Имена на host и адреси на proxy
Връзка към Имена на host и адреси на proxy- Ако хората стигат до HolyArrs по име на host, добави го в
HOLYARRS_ALLOWED_HOSTS. - Ако proxy-то добавя
X-Forwarded-For, добави адреса на proxy-то вHOLYARRS_TRUSTED_PROXIES. Без това входът не може да познае кой е в домашната ти мрежа.
Ако не работи
Връзка към Ако не работи| Проблем | Причина | Решение |
|---|---|---|
| Всяка страница казва not found | Proxy-то маха пътя | Махни настройката за премахване или наклонената черта накрая. |
| Живите обновявания никога не пристигат | Proxy-то буферира отговорите | Изключи буферирането (proxy_buffering off, flush_interval -1). |
| Запазен път те е заключил навън | Запазеният път е грешен | Стартирай с HOLYARRS_URL_BASE=/, за да го игнорираш. |
| Входът те третира като извън мрежата ти | На proxy-то не се вярва | Изпращай X-Real-IP и X-Forwarded-For и задай HOLYARRS_TRUSTED_PROXIES. |
Още решения: Отстраняване на проблеми.
За експерти
Връзка към За експертиПравила за пътя
- Позволени знаци: букви, цифри,
-,_,.и/. Без..или//. holyarrs,/holyarrsи/holyarrs/всички значат/holyarrs.- Запазен път, който не е валиден, се игнорира.
- Всичко се мести под пътя: страници, API, живи обновявания, вход и връзките, които HolyArrs изгражда (връзки за покана, календарният feed).
/healthzи/readyzотговарят и в корена, така че собствената проверка на здравето на образа продължава да работи.- Всеки друг адрес извън пътя отговаря not found.
Какво трябва да прави proxy-то
| Нужда | Защо |
|---|---|
| Предава пътя непроменен | HolyArrs насочва по пълния път. |
Запазва заглавката Host |
Проверките на host и изградените връзки я ползват. |
| Без буфериране на отговорите | Живите обновявания текат по един отворен отговор. |
| Дълъг read timeout (1 h) | Потокът с живи обновявания стои отворен. |
Свързано
Връзка към СвързаноHolyArrs е безплатен. Ако ти е спестил време, сложи му звезда в GitHub, подкрепи го или почерпи ме с кафе.