Estoy intentando configurar Discourse en un contenedor Docker. El entorno del host (Debian) tiene un servidor Apache httpd en ejecución (no puedo ejecutar nginx porque estoy alojando otros sitios en Apache). Quiero usar mod_proxy para hacer proxy inverso al contenedor, que está escuchando en el puerto 3000.
La configuración actual de Apache para este vhost es la siguiente:
Empecé solo con las directivas ProxyPass y ProxyPassReverse y agregué ProxyPreserveHost y las directivas RequestHeader una a la vez. No importa cómo configure el proxy usando estas directivas, ciertos archivos debajo del documento raíz devuelven 404 al acceder (por ejemplo, cosas en /images y /assets).
Tenga en cuenta el comentario que contiene la URL de Discourse Meta que convertí de la sintaxis de nginx a Apache.
Cualquier idea sobre cómo hacer que esto funcione sería muy apreciada.
HAProxy hace lo que necesito y parece una herramienta muy pulida y útil. Gracias por la indicación.
Sin embargo, parece que el problema estaba al editar las plantillas web*.yml para escuchar en puertos distintos a los predeterminados 80 y 443. Restauré las configuraciones predeterminadas y luego edité containser/app.yml para incluir líneas similares a las siguientes, y los errores 404 desaparecieron:
He estado muy satisfecho con Traefik últimamente, y emite certificados de Let’s Encrypt automáticamente (también puedes hacerlo con HA-Proxy, aunque requiere un poco más de trabajo).