En el entorno de validación, que es el que nosotros administramos, para ir acostumbrando a la gente a utilizar la nueva arquitectura hemos decidido capar diversas operaciones (si no les funcionan van a tener que migrar forzosamente) de una forma elegante y transparente para desarrollo. Vamos a montar un apache "delante" del tomcat, levantado en su mismo puerto que redirija todas las peticiones al tomcat, que estará levantado en otro puerto. Además, en el apache caparemos diversas operaciones para mostrar un mensaje de error y cuando se realice la redirección de las operaciones correctas, mantendremos el puerto del tomcat oculto.
Hemos utilizado la versión 1.3.26 de Apache y el sistema operativo en el que corre es Solaris 8.
En el archivo httpd.conf hemos añadido las siguientes líneas.
Conector de Tomcat:
LoadModule jk_module libexec/mod_jk.so
AddModule mod_jk.c
Definición de las operaciones que queremos capar:
RewriteLog "logs/rewrite_log"
RewriteLogLevel 2
Options +FollowSymLinks
RewriteCond %{THE_REQUEST} .*OPERACION_01.* [OR]
RewriteCond %{THE_REQUEST} .*OPERACION_02.* [OR]
...
RewriteCond %{THE_REQUEST} .*OPERACION_N.* [OR]
RewriteRule dispatcher /error_dispatcher.xml [PT]
Redirección al tomcat:
JkWorkersFile /ruta/del/apache/conf/workers.properties
JkLogFile /ruta/del/apache/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /* worker1
Creamos el worker.properties:
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=IP_DE_LA_MAQUINA
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.recycle_timeout=300
Y listo. Reiniciamos el tomcat y el apache y haciendo una prueba vemos que las operaciones "prohibidas" se redirigen al mensaje de error definido y el resto se resuelven por el tomcat.
No hay comentarios:
Publicar un comentario