Tengo un NAS con numerosos servicios dockerizados con dominios, todos apuntando al NAS con proxies inversos de Apache configurados para dirigir a la Docker Container IP:PORT correcta.
Todo esto funciona muy bien.
Decidí desafiarme a mí mismo agregando un contenedor para alojar todos mis sitios web de juguetes, pero no sé cómo configurar el proxy inverso para que el ServerName en el NAS Apache VirtualHost se reenvíe al Apache VirtualHost del contenedor para dirigirlo a la carpeta correcta. .
El sitio vive en una carpeta en el NAS /share/dev/web/sites .
Con las configuraciones a continuación, puedo navegar a http://sites.mydomain.com/sites mientras que lo que quiero poder hacer es visitar http://sites.mydomain.com .
Creo que mi NAS Apache VirtualHost no está reenviando el nombre del servername , por lo que Docker Container Apache VirtualHost no sabe cómo filtrar el tráfico.
Probé varias configuraciones diferentes de Apache sin suerte, ¿alguien podría indicarme el camino?
docker-compose
version: '3.8' services: php-apache-environment: container_name: php-apache image: php:8.0-apache volumes: - /share/dev/web:/var/www/html/ - /share/dev/docker-composer/php/apache/apache2.conf:/etc/apache2/apache2.conf - /share/dev/docker-composer/php/apache/custom.conf:/etc/apache2/sites-available/custom.conf ports: - 9103:80Servidor virtual NAS Apache
<VirtualHost *:80> ServerName sites.mydomain.com ProxyPass / http://192.168.253.53:9103/ ProxyPassReverse / http://192.168.253.53:9103/ </VirtualHost>Docker Contenedor Apache VirtualHost
<VirtualHost *:80> ServerName sites.mydomain.com ServerAdmin webmaster@name DocumentRoot /var/www/html/sites ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>Quieres ProxyPreserveHost
Cuando está habilitada, esta opción pasará la línea Host: de la solicitud entrante al host proxy, en lugar del nombre de host especificado en la línea ProxyPass.
Esta opción normalmente debería estar desactivada. Es sobre todo útil en configuraciones especiales, como alojamiento virtual basado en nombres masivos con proxy, donde el servidor backend debe evaluar el encabezado del host original.
Para su configuración, algo como:
<VirtualHost *:80> ServerName sites.mydomain.com ProxyPreserveHost on ProxyPass / http://192.168.253.53:9103/ ProxyPassReverse / http://192.168.253.53:9103/ </VirtualHost>