Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/10/2012, 15:36
au777lio
 
Fecha de Ingreso: septiembre-2012
Ubicación: Madrid
Mensajes: 3
Antigüedad: 11 años, 7 meses
Puntos: 0
Redirigir Apache a Tomcat

Hola.
Acabo de contratar un VPS con Knownhost (off-topic pero bastante bien de momento), y mi problema es que tengo todo montado con Tomcat y claro, las urls son del tipo miapp:8080/context. Se que hay una forma de que Apache delegue a Tomcat lo que es de Tomcat y el resto lo sirva como httpd que es. No se cuantos artículos me he mirado sobre el tema, pero llego al punto en que creo que lo he hecho todo y no funciona. A ver si me podéis dar una ayudita. Se que este es un tema recurrente por lo que puede servir a otros también. Mi VPS tiene CentOS, Apache y Tomcat 7. Debo advertir que soy un novato total con Apache y en general Linux.

Primero, me bajé el binario del conector mod_jk. Debo decir que en el sitio oficial de downloads de Tomcat me fue imposible encontrar el binario del conector para Linux, así que en google encontré este: mod_jk-1.2.28-httpd-2.2.X.so (que creo que no es el último pero creo que vale).

Lo renombré a mod_jk.so y lo puse en /etc/httpd/modules

En /etc/httpd/conf he creado el fichero mod_jk.conf

El contenido del fichero es este:

# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile /etc/httpd/conf/workers.properties
# Where to put jk shared memory
JkShmFile /var/log/httpd/mod_jk.shm
# Where to put jk logs
JkLogFile /var/log/httpd/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the timestamp log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# Send servlet for context /micontexto to worker named worker1
#JkMount /micontexto/servlet/* worker1
# Send JSPs for context /examples to worker named worker1
#JkMount /micontexto/*.jsp worker1
JkMount /micontexto* ajp13
#Mount the webapp context

De lo de arriba deduzco que puedo redirigir todo el tráfico con el patrón /micontexto (que es mi aplicación desplegada en tomcat) a través de eso que se llama ajp13. Y también deduzco que tendría que hacerlo en este fichero para cada una de mis aplicaciones.

Seguimos, por último el workers.properties lo pongo donde indica el fichero anterior: /etc/httpd/conf/workers.properties

y tiene esta pinta:

# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=[AQUI PONGO MI IP]
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


Todo esto lo he hecho cogiendo retazos de unos sitios y otros, pero después de reiniciar el httpd, no me va. Es decir, que hay que seguir poniendo el dominio seguido del puerto. ¿Qué hago mal?

Muchas gracias por anticipado