Instalación básica de contenedor de red Tomcat en Linux


  El mundo de los servidores de red es basto y lleno de misterios.
  En entradas anteriores de la presente bitácora se ha hablado de Apache, de Internet Information Services, y de Nginx. Todos ellos han sido definidos como servidores de red (aunque algunos posean otras funciones añadidas).
  Mas en esta entrada se hablará de un interesante complemento a un servidor de red conocido como contenedor de red (o contenedor web), de entre los cuales uno de los más populares es Apache Tomcat.
  Pero lo primero es lo primero. Un contenedor de red es, desde el punto de vista de la programación informática en Java, la implementación que hace cumplimiento del contrato de componentes web de la arquitectura J2EE (Java 2 Enterprise Edition, plataforma de programación en Java).​ Este contrato especifica un entorno de ejecución para componentes web que incluye seguridad, concurrencia, gestión del ciclo de vida, procesamiento de transacciones, despliegue y otros servicios. Un contenedor web suministra los mismos servicios que el contenedor de JSP así como también una vista federada de las API de la plataforma J2EE. Un contenedor de red se suministra incluido en un servidor de red o J2EE.

  Apache Tomcat (también llamado Jakarta Tomcat o simplemente Tomcat) funciona como un contenedor de servlets (clase de lenguaje de programación Java, utilizada para ampliar las capacidades de un servidor).
  Este contenedor de red es desarrollado y actualizado por miembros de la Apache Software Foundation y voluntarios independientes. Los usuarios disponen de libre acceso a su código fuente y a su forma binaria en los términos establecidos en la Apache Software License.
  Tomcat es un contenedor web con soporte de servlets y JSPs. Incluye el compilador Jasper, que compila JSPs convirtiéndolas en servlets. El motor de servlets de Tomcat a menudo se presenta en combinación con un servidor web (generalmente Apache o Nginx).
  Tomcat puede funcionar como servidor de red por sí mismo. En sus inicios existió la percepción de que el uso de Tomcat de forma autónoma era sólo recomendable para entornos de desarrollo y entornos con requisitos mínimos de velocidad y gestión de transacciones. Hoy en día ya no existe esa percepción, y Tomcat es usado como servidor web autónomo en entornos con alto nivel de tráfico y alta disponibilidad.
 Por otra parte, dado que Tomcat fue escrito en Java, funciona en cualquier sistema operativo que disponga de la máquina virtual Java.
  La jerarquía de directorios de instalación de Tomcat incluye:

  •   bin: Arranque, cierre, y otros guiones y ejecutables.
  •   common: Clases comunes que pueden utilizar Catalina y las aplicaciones web.
  •   conf: Ficheros XML y los correspondientes DTD para la configuración de Tomcat.
  •   logs: Archivos de registro de Catalina y de las aplicaciones (el archivo de registro principal es "catallina.out").
  •   server:  Clases utilizadas solamente por Catalina.
  •   shared: Clases compartidas por todas las aplicaciones web.
  •   webapps: Directorio que contiene las aplicaciones web.
  •   work: Almacenamiento temporal de ficheros y directorios.


INSTALACIÓN DE JAVA

  Como ya se ha dicho antes, este contenedor de red funciona siempre y cuando exista una máquina virtual de Java en el equipo con una versión compatible (generalmente, tienen que tener los dos el mismo número de versión, aunque la versión 8 trabaja ya con una versión 7 de Java), por lo que, si no había una instalada previamente, se debe instalar una antes de instalar el propio programa.
  Pese a que existe una versión en los repositorios de Linux (Java OpenJDK), es mejor instalar la versión Java Sun Oracle. Esta última puede descargarse desde el siguiente enlace de la página de Oracle, donde hay que pulsar en el enlace adecuado para el sistema operativo y la arquitectura que se tenga (en esta explicación, se utilizará Debian 9 como sistema operativo, y Tomcat 8 como contenedor de red para mostrar los ejemplos; debido a esto, la mejor opción es "jdk-8u181-linux-x64.tar.gz").
  Una vez descargado, se copia el archivo comprimido en el directorio "opt", y se descomprime mediante el comando tar -zxf <versión de Java>-linux-x64.tar.gz (anteponiendo sudo si no se está como administrador). En el directorio quedará una carpeta con el nombre del programa de Java (en este ejemplo, "jdk1.8.0_181").
    A continuación, se instalan las herramientas adecuadas mediante los comandos:

  • update-alternatives --install /usr/bin/java java /opt/<carpeta de Java>/bin/java 8181
  • update-alternatives --install /usr/bin/javac javac /opt/<carpeta de Java>/bin/javac 8181
  Se debe anteponer sudo si no se está como administrador.


INSTALACIÓN DE TOMCAT

  En primer lugar, debe descargarse el archivo comprimido de Tomcat, esto puede hacerse desde el siguiente enlace, o bien, dentro del directorio donde se desea que se descargue (el mejor es "tmp"), mediante el comando wget <dirección URL completa hasta el archivo> (anteponiendo sudo si no se está como administrador; la dirección URL de la versión de Tomcat que se utiliza en los ejemplos de esta explicación es: "http://apache.rediris.es/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz ").


  A continuación, se descomprime el archivo mediante el comando tar -xvf apache-tomcat-<versión del programa>.tar.gz (anteponiendo sudo si no se está como administrador)Tras esto, se mueve la carpeta (mejor al directorio "opt", aunque también es muy común moverlo a "/usr/local/" o "/usr/share/") mediante el comando mv (concretamente mv apache-tomcat-<versión del programa> /opt/<nombre significativo del programa>). Y se comprueba si todo está en orden mediante un comando ls (en el ejemplo, la carpeta del programa se llama, simplemente, "tomcat").

  Acto seguido, conviene crear un grupo y un falso usuario específicos para el contenedor de red. Para ello es mejor ser administrador, pero si no es así, se puede anteponer sudo a los comandos necesarios. De este modo, se escribirá en un terminal:
  •   groupadd tomcat (para crear el nuevo grupo).
  •   useradd -s /bin/false -g tomcat -d /opt/<carpeta de tomcat> tomcat (para crear al falso usuario dentro del grupo antes creado y asociado al directorio del programa).
  •   chgrp -R tomcat /opt/<carpeta del programa>/ (para añadir el directorio del programa, y todos sus subdirectorios, al grupo creado).
  •   chmod -R g+r conf (para darle permisos de lectura al grupo creado sobre el directorio "conf" y a todos sus subdirectorios). 
  •   chmod g+x conf (para darle permisos de ejecución al grupo creado sobre el directorio "conf" y a todos sus subdirectorios).
  •   chown -R tomcat webapps/ work/ temp/ logs/ srv/ trash/ (para darle en propiedad al falso usuario los directorios designados con sus correspondientes subdirectorios).
  Seguidamente, se debe crear (o modificar si ya está creado), un archivo de unidad ("unit file", en inglés) que lleve un nombre significativo seguido de ".service" (por ejemplo, "tomcat.service"). Para esto es necesario acceder a, o establecer dicho archivo en, la ruta "/etc/systemd/system/". El archivo básico debe quedar como en la siguiente imagen (cambiando lo necesario según sea preciso, por supuesto).
  Otra buena práctica, si se va a utilizar el panel gráfico de Tomcat, consiste en editar el fichero "tomcat-users.xml" (alojado en "conf") y establecer el nombre del administrador del sitio y el de la aplicación descomentando las líneas pertinentes (mostradas en la siguiente imagen), y cambiando los parámetros "username" y "password" como convenga.
  También es preferible, aunque no imprescindible (si la dirección IP del Tomcat no viene dada por otro servidor, o se pretende acceder a él sólo en el equipo local), comentar o añadir la IP a la etiqueta <Valve /> que se encuentra en el archivo "context.xml" de las rutas "webapps/manager/META-INF/" y "/webapps/host-manager/META-INF/" [en un archivo ".xml"se comenta poniendo los símbolos "<!--" y "-->", antes y después de lo que se quiere comentar respectivamente; la dirección IP (o el rango de direcciones IP) se escribirán al final de la línea "allow=..." (pero dentro de las comillas de la misma) separada del resto por un "|"].
  Como este servicio no se inicia él solo, hay que activarlo manualmente mediante el comando systemctl start tomcat (anteponiendo sudo si no se está como administrador). No obstante, es posible hacer que sea un servicio autoarrancable mediante el comando systemctl enable tomcat (anteponiendo sudo si no se está como administrador).
  Con todo funcionando, sólo hay que comprobar, desde un navegador de red, que puede verse la pantalla de inicio del programa [se debe escribir la dirección IP y su puerto (por defecto "8080") en la barra de direcciones del navegador de red] (en este ejemplo, la IP es "192.168.0.11" ).

  Espero que la presente entrada haya sido del gusto del lector. Si ha sido así, aguardo que el lector la comparta y/o la comente, por favor.

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.