Apache VirtualHosts não funciona/redireciona? (Proxy reverso)

Apache VirtualHosts não funciona/redireciona? (Proxy reverso)

Estou tentando configurar o Apache como proxy reverso em uma nova máquina virtual Ubuntu 22.04. Temos um proxy reverso Apache existente no Ubuntu 18.04 onde tudo está funcionando conforme o esperado. Este novo proxy reverso deveria substituir o antigo, mas os hosts virtuais não parecem estar funcionando corretamente.

Eu fiz o seguinte:

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

Desativei a página padrão em sites habilitados.

a2dissite 000-default.conf

Em seguida, criei um novo host virtual e o habilitei.

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

Se parece com isso:

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

Em seguida, reiniciei e recarreguei o Apache.

systemctl restart apache2
systemctl reload apache2

Criei uma entrada de arquivo host em meu PC com Windows para testar se essa configuração básica funciona, ela aponta para meu servidor Apache.

Quando tento acessar trupage.azmedien.ch, ele me leva ao site padrão do Apache, em vez de realmente me redirecionar para o servidor correto (que é definido com ProxyPass no host virtual).

Parece que não reconhece o virtualhost por algum motivo? Quando substituo "trupage.azmedien.ch:80" por "*:80" e abro no meu navegador, o ProxyPass funciona. Mas, obviamente, não é isso que eu quero, pois haverá vários hosts virtuais.

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

Aqui está a saída de apache2ctl -S213.146.11.131 é o IP do antigo proxy reverso, mas não tenho ideia de onde ele vem ou por que está aparecendo aqui:

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

Responder1

Você não precisa do nome DNS na <VirtualHost>linha. <VirtualHost *:80>está tudo bem, você pode ter vários deles, relevante é a ServerNamediretiva.

A entrada na <VirtualHost>linha define apenas em qual interface o Apache deve escutar. Se você inserir um nome de host aqui, o Apache tentará resolvê-lo para um endereço IP para encontrar a interface correta.

informação relacionada