Apache Tomcat para entornos de producción (I)

Desde hace ya muchos años, Apache Tomcat forma parte de mi caja de herramientas. Supongo esto también le sucederá a otros muchos profesionales. Bien es cierto, que cada vez más comparte espacio con soluciones como Jetty o Glassfish, sin embargo, yo le tengo un respeto prácticamente infinito. Son muchos los entornos de producción a los que he tenido acceso y en los que Apache Tomcat era la opción para actuar como contenedor JSP/Servlet. Que no os extrañe si os digo que en la mayoría la instalación consistía en:

  1. Descargar el tar.gz
  2. Descomprimirlo
  3. Y lanzar $TOMCAT_HOME/bin/startup.sh

Me gustaría compartir con vosotros cómo configuramos nosotros (@klicap) Apache Tomcat con el objetivo de conocer vuestras impresiones y dejar unas notas para que no se olviden. Esta es la configuración que estamos usando en Clinker Virtual Appliance. En las siguientes instrucciones se presupone que estamos usando un S.O. Linux y que la JVM está correctamente configurada.

  1. Descargar los binarios del sitio web oficial.
  2. Descomprimir el tar.gz en /opt
  3. Crear un enlace simbólico /opt/tomcat > /opt/apache-tomcat-6.0.32
  4. En $TOMCAT_HOME/bin encontraremos tomcat-native.tar.gz que corresponde con Apache Tomcat Native, una librería que mejora el rendimiento porque delega en APR ciertas funcionalidades que están implementadas de forma nativa.
  5. Descomprimimos tomcat-native.tar.gz
  6. Configuramos el proyecto y compilamos:
    ./configure \
    --libdir=/usr/local/lib/tomcat-native-1.1.20 \
    --with-java-home=/usr/local/java \
    --with-apr=/usr/bin/apr-1-config
    make && make install
  7. Creamos un enlace simbólico /usr/local/lib/tomcat-native > /usr/local/lib/tomcat-native-1.1.20
  8. Configuramos la variable de entorno (p.e. en /etc/profile):
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/tomcat-native

Cuando lancemos Apache Tomcat encontraremos en los logs el siguiente mensaje:

19-abr-2011 13:09:45 org.apache.catalina.core.AprLifecycleListener init
INFO: Cargada la biblioteca nativa APR de Apache Tomcat 1.1.20
19-abr-2011 13:09:45 org.apache.catalina.core.AprLifecycleListener init
INFO: Capacidades APR: IPv6 [true], enviar fichero [true], aceptar filtros [false], aleatorio [true].

En una instalación por defecto hubiéramos encontrado un mensaje similar a este:

org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path

En la siguiente entrada veremos cómo configurar commons-daemon con Apache Tomcat.

3 thoughts on “Apache Tomcat para entornos de producción (I)

  1. Pingback: Mi espacio » Apache Tomcat para entornos de producción (II)

  2. Hola:

    Y hay algún incoveniente de usar APR? Lo digo porque tengo una aplicación desarrollada en Struts 1.1 y no se si aventurarme a activar APR.

    Saludos,

    Miguel

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>