
Tenho a seguinte estrutura de diretórios para vários sites e serviços
/var/www/html/site1
/var/www/html/site2
/var/www/html/site3
/var/www/html/serv1
/var/www/html/serv2
site1
pasta hospeda um site em site1domain.com
que desejo expor os serviços de webapp hospedados serv1
e serv2
as pastas para mostrá-los como
service1.site1domain.com
service2.site1domain.com
Então tentei configurar o host virtual em site1domain.conf
arquivo desta forma
<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>
Mas os blocos de código do host virtual relacionados aos serviços causam uma falha no servidor: saia com o código de erro 1.
Alguém poderia me ajudar a entender como configurá-los corretamente?
Responder1
Que tal apenas:
<VirtualHost *:80>
ServerName service1.site1domain.com
DocumentRoot /var/www/html/serv1
</VirtualHost>
<VirtualHost *:80>
ServerName service2.site1domain.com
DocumentRoot /var/www/html/serv2
</VirtualHost>
Não é necessário mod_proxy.
Responder2
O erro é causado pelo seuProxyPass
eProxyPassReverse
directivas que não tenhamesquemaparte do URL. A sintaxe correta seria, por exemplo
ProxyPass "/" "http://localhost/serv1"
ProxyPassReverse "/" "http://localhost/serv1"
No entanto, Andrew está correto nissoproxy reversonão é necessária nem a melhor tecnologia para este caso de uso.