
Proxy inverso en apache hacia tomcat
Publicado por Carlos (5 intervenciones) el 16/06/2014 18:13:40
Tengo un proxy inverso que me funciona correctamente para acceder a tomcat desde apache, siempre y cuando acceda a la raiz del tomcat.
Sería algo así:
El problema es que para acceder a mi app (que llamaré app) debo hacer:
www.dominio.com/app
A esto le veo dos problemas y es que www.dominio.com lo responde tambien el ROOT de tomcat, y me gustaría que fuese apache, y que /app es el nombre de mi app, pero si quiero ponerle otra cosa, no funciona.
Querría que si pongo solo el domino responda apache y si accedo a un directorio en especial responda tomcat, pero con la app, no con el ROOT.
Como no consigo hacerlo funcionar he optado por hacerlo por partes, y lo primero que he intentado es que al poner www.dominio.com se me muestre directamente mi app de tomcat y lo he conseguido, pero no funciona correctamente. Pongo aquí el código de site de apache.
Aquí aparentemente funciona, y me muestra la pantalla de login, pero aunque me encuentra las primeras llamadas, al poner el usuario y la contraseña, comienza a darme error 500 los controladores, como que las siguientes peticiones no están pudiendo ser resueltas.
Si realizo la llamadas en el navegador poniendo la url de tomcat directamente funciona, pero a través del proxy sólo funcionan las primeras. Sería algo así:
POST http://www.dominio.com/ControladorLogin 200 OK 125ms
POST http://www.dominio.com/Html 200 OK 109ms
En este punto tengo cargado el login, pongo usuario y contraseña y pulso login.
POST http://www.dominio.com/ControladorLogin 200 OK 922ms
POST http://www.dominio.com/ControladorConfiguracion 500 Internal Server Error 129ms
POST http://www.dominio.com/Html 500 Internal Server Error 125ms
Notese que la llamada de ControladorLogin la que realiza la comprobación del login, pero tras esta falla el ControladorConfiguración y el Html que antes había funcionado.
¿Alguna idea?
Sería algo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<VirtualHost *:80>
ServerName www.dominio.com
ProxyRequests Off
ProxyPreserveHost On
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
ProxyPass / http://localhost:8080/
ProxyHTMLURLMap http://localhost:8080/ /
ProxyPassReverse / http://localhost:8080/
ErrorLog /var/log/apache2/proxy.error.log
CustomLog /var/log/apache2/proxy.log combined
</VirtualHost>
El problema es que para acceder a mi app (que llamaré app) debo hacer:
www.dominio.com/app
A esto le veo dos problemas y es que www.dominio.com lo responde tambien el ROOT de tomcat, y me gustaría que fuese apache, y que /app es el nombre de mi app, pero si quiero ponerle otra cosa, no funciona.
Querría que si pongo solo el domino responda apache y si accedo a un directorio en especial responda tomcat, pero con la app, no con el ROOT.
Como no consigo hacerlo funcionar he optado por hacerlo por partes, y lo primero que he intentado es que al poner www.dominio.com se me muestre directamente mi app de tomcat y lo he conseguido, pero no funciona correctamente. Pongo aquí el código de site de apache.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<VirtualHost *:80>
ServerName www.dominio.com
ErrorLog /var/log/apache2/ajp.error.log
CustomLog /var/log/apache2/ajp.log combined
ProxyRequests Off
ProxyPreserveHost On
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
ProxyPass / http://localhost:8080/app/
ProxyHTMLURLMap http://localhost:8080/app/ /
ProxyPassReverse / http://localhost:8080/app/
</VirtualHost>
Aquí aparentemente funciona, y me muestra la pantalla de login, pero aunque me encuentra las primeras llamadas, al poner el usuario y la contraseña, comienza a darme error 500 los controladores, como que las siguientes peticiones no están pudiendo ser resueltas.
Si realizo la llamadas en el navegador poniendo la url de tomcat directamente funciona, pero a través del proxy sólo funcionan las primeras. Sería algo así:
POST http://www.dominio.com/ControladorLogin 200 OK 125ms
POST http://www.dominio.com/Html 200 OK 109ms
En este punto tengo cargado el login, pongo usuario y contraseña y pulso login.
POST http://www.dominio.com/ControladorLogin 200 OK 922ms
POST http://www.dominio.com/ControladorConfiguracion 500 Internal Server Error 129ms
POST http://www.dominio.com/Html 500 Internal Server Error 125ms
Notese que la llamada de ControladorLogin la que realiza la comprobación del login, pero tras esta falla el ControladorConfiguración y el Html que antes había funcionado.
¿Alguna idea?
Valora esta pregunta


0