Ir al contenido

Proxy inverso y URL base

Configuración

Pon HolyArrs en una dirección como https://home.example/holyarrs detrás de tu proxy inverso.

Un proxy inverso es el servidor web que está delante de tus apps y envía cada dirección al contenedor correcto. La URL base es la ruta bajo la que vive HolyArrs.

Configurar la ruta

Enlace a Configurar la ruta
  1. Añade la ruta a tu archivo Compose:

    services:
    holyarrs:
    environment:
    - HOLYARRS_URL_BASE=/holyarrs
  2. Reinicia el contenedor.

  3. Añade una regla de proxy de Ejemplos de proxy.

  4. Abre https://home.example/holyarrs/. Deberías ver la página de inicio de sesión. Settings > This app (Ajustes > Esta app) muestra la ruta en uso.

Dónde configurar la ruta

Enlace a Dónde configurar la ruta
Dónde Cuándo se aplica
HOLYARRS_URL_BASE Al iniciar. Gana a las demás.
Opción -url-base /holyarrs Al iniciar, cuando la variable no está definida.
Settings > This app En el siguiente inicio, solo cuando ni la variable ni la opción están definidas.

nginx-proxy-manager. Crea un host de proxy para tu dominio y luego añade una ubicación personalizada:

  • Ubicación: /holyarrs
  • Nombre de host de destino holyarrs, puerto 6262. Sin barra al final, o se quita la ruta.
  • En el cuadro del engranaje de esa ubicación:
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. No añadas un 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. Usa handle. handle_path quita la ruta.

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

Nombres de host y direcciones del proxy

Enlace a Nombres de host y direcciones del proxy
  • Si la gente llega a HolyArrs por un nombre de host, añádelo a HOLYARRS_ALLOWED_HOSTS.
  • Si el proxy añade X-Forwarded-For, añade la dirección del proxy a HOLYARRS_TRUSTED_PROXIES. Sin eso, el inicio de sesión no puede saber quién está en tu red de casa.
Síntoma Causa Solución
Todas las páginas dicen que no se encontraron El proxy quita la ruta Quita el ajuste que la recorta o la barra final.
Las actualizaciones en vivo nunca llegan El proxy guarda las respuestas en búfer Desactiva el búfer (proxy_buffering off, flush_interval -1).
Una ruta guardada te dejó fuera La ruta guardada es incorrecta Inicia con HOLYARRS_URL_BASE=/ para ignorarla.
El inicio de sesión te trata como si estuvieras fuera de tu red El proxy no es de confianza Envía X-Real-IP y X-Forwarded-For, y define HOLYARRS_TRUSTED_PROXIES.

Más soluciones: Solución de problemas.

Reglas de la ruta
  • Caracteres permitidos: letras, dígitos, -, _, . y /. Sin .. ni //.
  • holyarrs, /holyarrs y /holyarrs/ significan todos /holyarrs.
  • Una ruta guardada que no es válida se ignora.
  • Todo pasa a estar bajo la ruta: las páginas, la API, las actualizaciones en vivo, el inicio de sesión y los enlaces que crea HolyArrs (enlaces de invitación, el feed del calendario).
  • /healthz y /readyz también responden en la raíz, así que la comprobación de salud propia de la imagen sigue funcionando.
  • Cualquier otra dirección fuera de la ruta responde que no se encontró.
Qué debe hacer el proxy
Necesidad Por qué
Pasar la ruta sin cambios HolyArrs enruta por la ruta completa.
Conservar la cabecera Host La usan las comprobaciones de host y los enlaces creados.
Sin búfer de respuestas Las actualizaciones en vivo se transmiten por una sola respuesta abierta.
Tiempo de espera de lectura largo (1 h) La transmisión de actualizaciones en vivo se queda abierta.

HolyArrs es gratis. Si te ahorró tiempo, dale una estrella en GitHub, patrocínalo o invítame a un café.