Перейти до вмісту

Зворотний проксі та URL base

Налаштування

Розмісти HolyArrs за адресою на кшталт https://home.example/holyarrs за своїм зворотним проксі.

Зворотний проксі — це вебсервер перед твоїми застосунками, який спрямовує кожну адресу до потрібного контейнера. URL base — це шлях, під яким працює HolyArrs.

  1. Додай шлях у файл compose:

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

  3. Додай правило проксі з розділу Приклади проксі.

  4. Відкрий https://home.example/holyarrs/. Ти маєш побачити сторінку входу. Settings > This app (Налаштування > Цей застосунок) показує шлях, який зараз використовується.

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

nginx-proxy-manager. Створи проксі-хост для свого домену, потім додай власну локацію:

  • Location: /holyarrs
  • Forward hostname: holyarrs, порт 6262. Без скісної риски наприкінці, інакше шлях відсікається.
  • У віконці зі значком шестірні для цієї локації:
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. Не додавай 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. Використай handle. handle_path відсікає шлях.

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

Імена хостів і адреси проксі

Посилання на Імена хостів і адреси проксі
  • Якщо люди заходять у HolyArrs за ім’ям хоста, додай його в HOLYARRS_ALLOWED_HOSTS.
  • Якщо проксі додає X-Forwarded-For, додай адресу проксі в HOLYARRS_TRUSTED_PROXIES. Без цього вхід не може визначити, хто з твоєї домашньої мережі.
Ознака Причина Рішення
Кожна сторінка каже, що нічого не знайдено Проксі відсікає шлях Прибери налаштування відсікання або скісну риску наприкінці.
Живі оновлення не надходять Проксі буферизує відповіді Вимкни буферизацію (proxy_buffering off, flush_interval -1).
Збережений шлях заблокував тобі вхід Збережений шлях хибний Запусти з HOLYARRS_URL_BASE=/, щоб його проігнорувати.
Вхід вважає, що ти поза своєю мережею Проксі не довірений Передавай X-Real-IP і X-Forwarded-For та задай HOLYARRS_TRUSTED_PROXIES.

Більше рішень: Усунення проблем.

Правила для шляху
  • Дозволені символи: літери, цифри, -, _, . і /. Без .. і //.
  • holyarrs, /holyarrs і /holyarrs/ означають одне й те саме — /holyarrs.
  • Збережений шлях, що не відповідає правилам, ігнорується.
  • Усе переходить під цей шлях: сторінки, API, живі оновлення, вхід і посилання, які будує HolyArrs (запрошення, стрічка календаря).
  • /healthz і /readyz відповідають і в корені, тож власна перевірка справності image продовжує працювати.
  • Будь-яка інша адреса поза шляхом відповідає, що нічого не знайдено.
Що має робити проксі
Вимога Навіщо
Передавати шлях без змін HolyArrs маршрутизує за повним шляхом.
Зберігати заголовок Host Його використовують перевірки хоста та побудовані посилання.
Без буферизації відповідей Живі оновлення передаються однією відкритою відповіддю.
Довгий тайм-аут читання (1 год) Потік живих оновлень лишається відкритим.

HolyArrs безкоштовний. Якщо він заощадив тобі час, познач його зіркою на GitHub, підтримай проєкт або пригости мене кавою.