Към съдържанието

Reverse proxy и URL base

Настройка

Постави HolyArrs на адрес като https://home.example/holyarrs зад твоя reverse proxy.

Reverse proxy е уеб сървърът пред приложенията ти, който праща всеки адрес към правилния контейнер. URL base е пътят, под който живее HolyArrs.

  1. Добави пътя в твоя Compose файл:

    services:
    holyarrs:
    environment:
    - HOLYARRS_URL_BASE=/holyarrs
  2. Рестартирай контейнера.

  3. Добави правило за proxy от Примери за proxy.

  4. Отвори https://home.example/holyarrs/. Трябва да видиш страницата за вход. Settings > This app (Настройки > Това приложение) показва пътя, който се ползва.

Къде Кога влиза в сила
HOLYARRS_URL_BASE При старт. Печели пред останалите.
-url-base /holyarrs flag При старт, когато променливата не е зададена.
Settings > This app При следващия старт, само когато променливата и flag-ът не са зададени.

nginx-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=6262

Caddy. Ползвай 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, подкрепи го или почерпи ме с кафе.