Preámbulo:
He configurado un servidor de acceso público con múltiples hosts virtuales. Las solicitudes de un host virtual deben enviarse a un servidor backend. Todas las demás solicitudes deben atenderse localmente.
Problema:
La solicitud de TODOS los hosts virtuales se transmite a la dirección IP especificada en la directiva ProxyPass una vez que se habilita el sitio web que necesita ser proxy. Cuando intento visitar cualquiera de los otros servidores virtuales, obtengo la página web del sitio web proxy. Al desactivar el sitio web proxy, todos los demás hosts virtuales reanudan su funcionamiento normal y reciben servicio localmente.
Configuración:
La configuración que tengo en el servidor de acceso público para los hosts virtuales: (otros hosts virtuales son copias de la misma configuración)
<VirtualHost *:80>
ServerName www.mainsite.com
ServerAlias mainsite.com
ServerAdmin [email protected]
DirectoryIndex index.php
DocumentRoot /var/www/mainsite.com
<Directory />
AllowOverride None
</Directory>
LogLevel info
ErrorLog /var/log/mainsite.com_err.log
CustomLog /var/log/mainsite.com_access.log combined
</VirtualHost>
La configuración que tengo en el servidor de acceso público para que el host virtual sea proxy:
<VirtualHost *:80>
ServerName calendar.othersite.com
ServerAdmin [email protected]
ProxyRequests Off
<Location />
ProxyPass http://192.168.0.1/
ProxyPassReverse http://192.168.0.1/
</Location>
<Proxy>
Order Allow,Deny
Allow from all
</Proxy>
TransferLog /var/log/othersite.com_access.log
ErrorLog /var/log/othersite.com_err.log
CustomLog /var/log/othersite.com.log combined
LogLevel debug
</VirtualHost>
Respuesta1
Intentar
sudo ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled
sudo ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled
sudo /etc/init.d/apache2 restart