
Tengo la siguiente estructura de directorios para múltiples sitios web y servicios.
/var/www/html/site1
/var/www/html/site2
/var/www/html/site3
/var/www/html/serv1
/var/www/html/serv2
site1
La carpeta aloja un sitio web. site1domain.com
Quiero exponer los servicios de aplicaciones web alojados en serv1
las serv2
carpetas para mostrarlos como
service1.site1domain.com
service2.site1domain.com
Así que intenté configurar el host virtual en site1domain.conf
el archivo de esta manera.
<VirtualHost *:80>
ServerName site1domain.com
ServerAlias www.site1domain.com
DocumentRoot /var/www/html/site1
<Directory /var/www/html/site1>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName service1.site1domain.com
ProxyPreserveHost On
ProxyRequest Off
ProxyPass "/" "localhost/serv1"
ProxyPassReverse "/" "localhost/serv1"
</VirtualHost>
<VirtualHost *:80>
ServerName service2.site1domain.com
ProxyPreserveHost On
ProxyRequest Off
ProxyPass "/" "localhost/serv2"
ProxyPassReverse "/" "localhost/serv2"
</VirtualHost>
Pero los bloques de código del host virtual relacionados con los servicios provocan una caída del servidor: salga con el código de error 1.
¿Alguien podría ayudarme a entender cómo configurarlos correctamente?
Respuesta1
¿Qué tal simplemente:
<VirtualHost *:80>
ServerName service1.site1domain.com
DocumentRoot /var/www/html/serv1
</VirtualHost>
<VirtualHost *:80>
ServerName service2.site1domain.com
DocumentRoot /var/www/html/serv2
</VirtualHost>
No se necesita mod_proxy.
Respuesta2
El error es causado por suProxyPass
yProxyPassReverse
directivas que no tienen laesquemaparte de la URL. La sintaxis correcta sería, por ejemplo
ProxyPass "/" "http://localhost/serv1"
ProxyPassReverse "/" "http://localhost/serv1"
Sin embargo, Andrew tiene razón en eso.proxy inversoNo se requiere ni la mejor tecnología para este caso de uso.