Conectar servidor apache con tomcat 6

Durante estos días he tenido que conectar un servidor Apache 2.2.14 con un Tomcat 6, para realizar pruebas. Tras leer un montón de páginas que explican como hacerlo he creado una «chuleta» que ahora comparto con todos.

Paso seguidos:

1. Descargo desde http://apache.rediris.es/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.28/i586/ el mod_jk para apache 2.2.x

2. Copio en modules de apache el mod_jk.so

3. Creo en conf el fichero mod_jk, que indica donde cargar el .so descargado, el fichero de workers.properties
Teniendo el aspecto

# Load mod_jk module
# Update this path to match your modules location
LoadModule jk_module modules/mod_jk.so
 
# Where to find workers.properties
# Update this path to match your conf directory location
JkWorkersFile conf/workers.properties
 
# Where to put jk logs
# Update this path to match your logs directory location
JkLogFile logs/mod_jk.log
 
# Set the jk log level [debug/error/info]
JkLogLevel info
 
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
 
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
 
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
 
# Send everything for context /ws to worker ajp13
JkMount /ws ajp13
JkMount /ws/* ajp13
 
# Send everything for context /jsp-examples to worker ajp13
JkMount /jsp-examples ajp13
JkMount /jsp-examples/* ajp13
 
# Send everything for context /servelts-examples to worker ajp13
JkMount /servlets-examples ajp13
JkMount /servlets-examples/* ajp13

Con JkMount indicamos que cuando se indique esa ruta en el apache se redirija la petición al tomcat para que resuelva la petición.

4. Crear el workes.properties, donde se indica como conectar con el tomcat

# Define 1 real worker named ajp13
worker.list=ajp13
 
# Set properties for worker named ajp13 to use ajp13 protocol,
# and run on port 8009
worker.ajp13.type=ajp13
worker.ajp13.host=localhost
worker.ajp13.port=8009
worker.ajp13.lbfactor=50
worker.ajp13.cachesize=10
worker.ajp13.cache_timeout=600
worker.ajp13.socket_keepalive=1
worker.ajp13.socket_timeout=300# Define 1 real worker named ajp13
worker.list=ajp13

Con este fichero podemos indicar todas la conexiones a los tomcats que resolverán las peticiones.

5. Luego en conf\server.xml del Tomcat habilitar la conexión ajp13 en el tomcat, en este fichero descomentar esta linea

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

Esta parte es importante porque con esto indicamos al tomcat por que puerto escucha para atender conexiones, así el valor de port debe ser el mismo de worker.ajp13.port
6. Incluyo el fichero con del mod_jk.conf en el httpd.conf de apache

include conf/mod_jk.conf

Webs usadas

Esta entrada fue publicada en Informática y etiquetada , , , , . Guarda el enlace permanente.

6 respuestas a Conectar servidor apache con tomcat 6

  1. Miguel dijo:

    Hola, supongo que tu implementacion es para linux,….funciona igual para windows?

  2. Miguel dijo:

    Otra consulta… en el archivo mod_jk.conf : en las lineas

    # Send everything for context /jsp-examples to worker ajp13
    JkMount /jsp-examples ajp13
    JkMount /jsp-examples/* ajp13

    # Send everything for context /servelts-examples to worker ajp13
    JkMount /servlets-examples ajp13
    JkMount /servlets-examples/* ajp13

    las url’s jsp-examples y servlets-examples debo reemplazarlas por mis url’s?….gracias

    • davioth dijo:

      Si, esas son el nombre de tus aplicaciones en el Tomcat, no tienes que cambiarlas por ninguna url, son el nombre de la aplicación. Por ejemplo si tú aplicación se llama «pepe», sería:

      Si en el tomcat para acceder a la aplicación haces esto:

      http://localhost:8080/pepe

      Pondrías en la configuración del mod_jk.conf, lo siguiente:

      JkMount /pepe ajp13
      JkMount /pepe/* ajp13 -> para que tome todo lo que cuelgue de «pepe»

      Espero que te sirva de ayuda.

  3. andy santi dijo:

    David, gracias por el tiempo y compartir tus conocimientos, tengo una duda quiero hacer un index.html que capture un nombre en la carpeta httdocs y en el destino (action ) tiene que llamar a un servlet enviodatos.java , que se encuentra en tomcat el cual retorna el nombre y un saludo ,ahora dime ,gracias a este protocolo me deberia aparecer
    la pagina sin ningún problema verdad. por favor contesta. O podrias hacer un ejemplo de como hacer una aplicación.¡¿como deberia hacerlo.Graciassssss

  4. Xavier Monfort Faure dijo:

    Hola:

    Mi duda es,  que una vez conectado apache con eclipse para que apache reenvie las peticiones. Como se puede configurar el ide Eclipse para trabajar en un entorno asi ?.  Como se puede añadir
    un runtime environment en eclipse de modo que sea eclipse el que  trabaje con apache y este su

    vez  reenvie las peticiones a tomcat ?. Añadir un contenedor tomcat a eclipse es sencillo pero

    no he encontrado como configurar apache http server para trabajar con eclipse ?

    Alguien sabe como se podria hacer sin instalar un plugin como el PDT de eclipse para trabajar

    con PHP ? , Trabajo con jsp y por tanto PHP no me interesa en estos momentos

    Saludos.

    Xavier Monfort

Responder a davioth Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *