Eliminar el Número de Puerto de la URL
En esta página veremos como configurar Tomcat y Apache para poder servir nuestra aplicación web de forma transparente desde nuestro servidor Web.
Hemos utilizado el protocolo de comunicación jk(?), porque este protocolo es el protocolo por defecto utilizado en Tomcat-4.1.*.
La Solución Trivial
Si no te importa el rendimiento y no quieres hacer cosas demasiado complejas al principio simplemente puedes ejecutar Tomcat sobre el puerto 80 en lugar de usar el puerto por defecto 8080. Si haces esto, puedes acceder a Tomcat como si fuera el servidor HTTP por defecto. Por ejemplo, la URL http://mycompany sería servida por Tomcat y si has seguido los pasos de la página anterior ya estaría todo hecho.
Pero esta no es la opción recomendada, porque:
- se dice que tomcat pierde bastante rendimiento cuando se utiliza como el servidor apache para servir ficheros estáticos.
- muy probablemetne tu servidor web/intranet esté ya ejecutándose en ese puerto, por eso incluso podrías no tener la oportunidad de utilizarlo para Tomcat.
- si el puerto 80 no está ocupado puedes utilizarlo por ahora, pero cortarías definitivamente la posibilidad de ejecutar tu servidor web en el puerto ahora ocupado.
Por todo esto, debes seguir leyendo ...
Configurar la Comunicación entre Tomcat y Apache
La eliminación del número de puerto de la URL es más complicada, porque ahora entra en juego el Servidor Web. Asumimos, que tu servidor Web ya se está ejecutando en el puerto estándar HTTP, 80. Por lo que se podrá acceder a la site de tu compañía mediante la URL: http://mycompany
Ahora lo que tenemos que hacer es configurar una línea de comunicación entre el servidor web y tomcat. Puedes leer el excelente documento que hay sobre esto en Apache. Pero si prefieres sólo configurarlos sin importarte nada más, sigue con este texto. Pero te avisamos. No explicaremos nada sobre los conceptos. Si algo falla, tendrás que ir a los documentos oficiales!
Preparar Tomcat
- Ve a la carpeta $tomcatroot/conf y edita el fichero server.xml
- Busca la definición del Ajp12 Connector.
- Añade un nuevo connector utilizando el siguiente código:
<Connector className="org.apache.tomcat.service.PoolTcpConnector">
<Parameter name="handler"
value="org.apache.tomcat.service.connector.Ajp13ConnectionHandler"/>
<Parameter name="port" value="8090"/>
</Connector>
El valor del puerto es arbitrario. Sólo tienes que asegurarte de que ese puerto no se utiliza en ningún otro programa de tu máquina.
Crear mod_jk.conf y worker.properties
Podemos dejar que Tomcat cree estos ficheros por nosotros. Pero preferimos darte dos ficheros de ejemplo, que puedes copiar/pegar en tu entorno. Estos ficheros se han construido para usarse con Cocoon. Ambos se deben situar en la carpeta $apacheroot/conf:
Un ejemplo de mod_jk.conf
El siguiente fragmento de código es la definición más pequeña posible. Por favor chequea todos los paths y modificalos de acuerdo a tu entorno:
<IfModule mod_jk.c>
JkWorkersFile /etc/httpd/conf/workers.properties
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel error
JkMount /cocoon cocoon
JkMount /cocoon/ cocoon
JkMount /cocoon/* cocoon
</IfModule>
Observa que con esta definición todas las peticiones a /cocoon serán completamente servidas por cocoon. Podrías querer añadir algunas reglas para que el contenido estático lo sirviera el servidor web...
Un ejemplo de worker.properties
Por favor chequea todos los paths y modificalos de acuerdo a tu entorno:
workers.tomcat_home=/opt/tomcat/tomcat-4.1.18
workers.java_home=/opt/java/java-1.3.1
worker.list=cocoon
worker.cocoon.port=8090
worker.cocoon.host=localhost
worker.cocoon.type=ajp13
Observa que puedes definir tantos workers como quieras, pero no te olvides de situarlos en la lista separada por comas worker.list. Ahora podrás montar diferentes espacios de URLs para diferentes servidores Tomcat...