¿Apache VirtualHosts no funciona/redirecciona? (Proxy inverso)

¿Apache VirtualHosts no funciona/redirecciona? (Proxy inverso)

Estoy intentando configurar Apache como proxy inverso en una nueva máquina virtual Ubuntu 22.04. Tenemos un proxy inverso Apache existente en Ubuntu 18.04 donde todo funciona según lo previsto. Se supone que este nuevo proxy inverso reemplazará al anterior, pero los hosts virtuales no parecen funcionar correctamente.

He hecho lo siguiente:

apt-get update
apt-get upgrade
apt-get install apache2
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_balancer
a2enmod lbmethod_byrequests

Deshabilité la página predeterminada en sitios habilitados.

a2dissite 000-default.conf

Luego creé un nuevo host virtual y lo habilité.

vi 001-trupage.azmedien.ch.conf
a2ensite 001-trupage.azmedien.ch.conf

Se parece a esto:

<VirtualHost trupage.azmedien.ch:80>
    ServerName trupage.azmedien.ch
    ProxyPreserveHost On
    ProxyPass / http://10.200.0.130/
    ProxyPassReverse / http://10.200.0.130/
</VirtualHost>

Luego reinicié y recargué Apache.

systemctl restart apache2
systemctl reload apache2

Creé una entrada de archivo host en mi PC con Windows para probar si esta configuración tan básica funciona, apunta a mi servidor Apache.

Cuando intento acceder a trupage.azmedien.ch, me lleva al sitio web predeterminado de Apache en lugar de redirigirme al servidor correcto (que está definido con ProxyPass en el host virtual).

¿Parece que no reconoce el host virtual por alguna razón? Cuando reemplazo "trupage.azmedien.ch:80" por "*:80" y luego lo abro en mi navegador, ProxyPass funciona. Pero, obviamente, eso no es lo que quiero ya que habrá varios hosts virtuales.

<VirtualHost *:80>
    ServerName trupage.azmedien.ch
    ProxyPreserveHost On
    ProxyPass / http://10.200.0.130/
    ProxyPassReverse / http://10.200.0.130/
</VirtualHost>

Aquí está el resultado de apache2ctl -S, 213.146.11.131 es la IP del antiguo proxy inverso, pero no tengo idea de dónde viene ni por qué aparece aquí:

root@azprox10:~# apache2ctl -S
AH00558: apache2: Could not reliably determine the server's fully qualified doma                                                                                                                               in name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress th                                                                                                                      is message
VirtualHost configuration:
213.146.11.131:80      is a NameVirtualHost
         default server localhost (/etc/apache2/sites-enabled/001-trupage.azmedi                                                                                                                               
         en.ch.conf:1)
         port 80 namevhost localhost (/etc/apache2/sites-enabled/001-trupage.azm                                                                                                                               
         edien.ch.conf:1)
         port 80 namevhost opvsg.chmedia.ch (/etc/apache2/sites-enabled/002-opvs                                                                                                                               
         g.chmedia.ch.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex rewrite-map: using_defaults
Mutex proxy: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

Respuesta1

No necesita el nombre dns en la <VirtualHost>línea. <VirtualHost *:80>está bien, puedes tener varios de ellos, la ServerNamedirectiva es relevante.

La entrada en la <VirtualHost>línea solo define en qué interfaz debe escuchar Apache. Si ingresa un nombre de host aquí, Apache intenta resolverlo en una dirección IP para encontrar la interfaz correcta.

información relacionada