Salve ragazzi,
ho un piccolo problema che non riesco a comprendere. Non mi considero un
esperto..perdonatemi se dico ca...te.
Ho un server, su cui è stata installata un'applicazione che necessita di
tomcat.
Inoltre sono stati creati due contesti con questa applicazione, una per
test e l'altra per la produzione (futura).
apache e tomcat comunicano con mod_proxy (in questo caso ajp).
Mi è stato richiesto di configurare i due accessi con due dns separati,
ovvero dns1.it/produzione e dns2.it/test.
Sul sistema ho trovato un file con dentro due virtual host per le
relative suite e le relative direttive ProxyPass ProxyPassReverse fuori
dai virtualhost gia configurati.
In questa maniera le due suite sono raggiungibili da:
dns1.it/produzione
dns1.it/test
dns2.it/produzione
dns2.it/test
mentre il risultato desiderato dovrebbe essere
dns1.it/produzione
dns2.it/test
Prima di mettere mani sul server, ho creato una piccola installazione
con httpd e tomcat, replicando la stessa configurazione ma utilizzando
gli example di tomcat.
Inserendo le direttive Proxy* fuori dai virtual host, ho lo stesso
comportamento del server di produzione, se invece le inserisco
all'interno del relativo virtual host, ottengo il risultato desiderato.
Tornando al server, ho questo file di configurazione:
ProxyPass /produzione ajp://localhost:8009/produzione
ProxyPassReverse /produzione ajp://localhost:8009/produzione
<VirtualHost *:80>
ServerAdmin email
ServerName dns1.it
DocumentRoot /var/www/html
DirectoryIndex index.htm index.html
Options FollowSymLinks
ErrorLog /var/log/httpd/errors.log
CustomLog /var/log/httpd/web_access.log combined
LogLevel error
Alias /produzione "/opt/tomcat/webapps/produzione"
<Directory "/opt/tomcat/webapps/produzione/">
....
</Directory>
</VirtualHost>
ProxyPass /test ajp://localhost:8009/test
ProxyPassReverse /test ajp://localhost:8009/test
<VirtualHost *:80>
ServerAdmin email
ServerName dns2.it
DocumentRoot /var/www/html
DirectoryIndex index.htm index.html
Options FollowSymLinks
ErrorLog /var/log/httpd/errors.log
CustomLog /var/log/httpd/web_access.log combined
LogLevel error
Alias /test "/opt/tomcat/webapps/test/"
<Directory "/opt/tomcat/webapps/test/">
...
</Directory>
</VirtualHost>
Oltre al fatto che le direttive ProxyPassReverse sono sbagliate
(https://httpd.apache.org/docs/2.4/mod/mod_proxy_ajp.html), se inserisco
le direttive all'interno del relativo virtual host ottengo una
separazione con i dns, ma in compenso ottengo un bel "bad
request......". Sui log non sono riuscito a trovare nulla di utile
(anche con livello debug). Ho provato a modificare le direttive
proxypassreverse in:
ProxyPassReverse /produzione http://dns1.it/produzione
senza avere risultato.
Ho provato ad utilizzare il mod_proxy_http invece di ajp, senza
risultato. Ne ho provate tante..senza risultato, sempre il "bad request".
Non riesco a capire da cosa dipende.
Idee?
Grazie in anticipo e scusate la lunghezza.