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 -S
213.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 ServerName
diretiva.
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.