En este artículo, le mostraremos cómo instalar y configurar Tomcat 10 en Ubuntu y cómo podemos integrarlo con Apache HTTP Server utilizando el conector mod_jk.
Apache Tomcat es un servidor web de código abierto y un contenedor de servlet que se utiliza para implementar y servir aplicaciones web Java. La mayoría de los frameworks web Java modernos se basan en servlets, por ejemplo, JavaServer Faces, Struts, Spring, etc.
Apache Tomcat también proporciona de forma predeterminada un conector HTTP en el puerto 8080, es decir, Tomcat también se puede utilizar como servidor HTTP. Pero el rendimiento de Tomcat no es tan bueno como el rendimiento de un servidor web designado, como el servidor Apache HTTP.
En la mayor parte de la producción, Tomcat se usa junto con Apache HTTP Server. Apache HTTP Server atiende contenido estático como HTML, imágenes, etc., y reenvía las solicitudes de contenido dinámico a Tomcat.
Esta guía de instalación y configuración se aplica a Apache con Tomcat 10 en Ubuntu.
1. Instalar Java
Primero, como siempre, actualice sus paquetes:
sudo apt update
Debe tener Java instalado en su sistema para ejecutar el servidor Tomcat. Tomcat 10 requiere Java SE 8 o una versión superior instalada en su sistema. Ejecute el siguiente comando e instale el paquete OpenJDK 11 JDK:
sudo apt install openjdk-11-jdk
Compruebe la versión activa actual de Java:
java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
2. Crear usuario del sistema Tomcat
Ejecutando un servidor Tomcat bajo la raíz usuario es un riesgo de seguridad. Por lo tanto, recomendamos crear una cuenta de usuario separada para ejecutar el servidor Tomcat.
El siguiente comando creará un usuario y un grupo con el nombre tomcat
en su sistema:
sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat
3. Instalar y configurar Apache Tomcat 10
Tomcat es una herramienta independiente de la plataforma y, siempre que Java esté instalado, la instalación es un proceso sencillo. Primero, debe descargar la versión deseada del sitio web oficial y luego descomprimirla en su sistema de archivos.
Ahora descargue la última versión binaria de Tomcat desde la página oficial de descargas de Tomcat.
wget https://apache.mirrors.nublue.co.uk/tomcat/tomcat-10/v10.0.8/bin/apache-tomcat-10.0.8.tar.gz
Una vez que se complete la descarga, extrae el archivo tar en /opt/tomcat
directorio:
sudo tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1
A continuación, establezca los permisos de archivo adecuados:
sudo chown -R tomcat:tomcat /opt/tomcat/
sudo chmod -R u+x /opt/tomcat/bin
Debe crear un usuario para el administrador de aplicaciones web en el servidor Tomcat. Se debe configurar una nueva cuenta de usuario para usar Apache Tomcat Web Application Manager.
Para ello, edite tomcat-users.xml
archivo en su editor:
sudo vim /opt/tomcat/conf/tomcat-users.xml
Pegue el siguiente código dentro de <tomcat-users>
</tomcat-users>
etiquetas Asegúrate de cambiar PASSWORD
para acceso de administrador y administrador.
<!-- user manager can access only manager section -->
<role rolename="manager-gui" />
<user username="manager" password="PASSWORD" roles="manager-gui" />
<!-- user admin can access manager and admin section both -->
<role rolename="admin-gui" />
<user username="admin" password="PASSWORD" roles="manager-gui,admin-gui" />
Tomcat proporciona una consola de administración basada en web. El servidor Tomcat predeterminado no permite el acceso remoto para las aplicaciones Manager y Host Manager. Sin embargo, solo puede acceder a ellos desde localhost.
Para habilitar las conexiones remotas, siga las instrucciones a continuación.
Cree un archivo conf/Catalina/localhost/manager.xml
:
sudo vim /opt/tomcat/conf/Catalina/localhost/manager.xml
Agrega el siguiente contenido:
<Context privileged="true" antiResourceLocking="false" docBase="{catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
También debe crear un archivo xml para la aplicación web del administrador de host para permitir el acceso a hosts remotos.
sudo vim /opt/tomcat/conf/Catalina/localhost/host-manager.xml
Agrega el siguiente contenido:
<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/host-manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
4. Crear un servicio Tomcat Systemd
Necesitamos crear un script de inicio para administrar Tomcat como un servicio systemd. Vamos a crear un tomcat.service
archivo.
sudo vim /etc/systemd/system/tomcat.service
Pegue lo siguiente en el archivo:
[Unit]
Description=Tomcat
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
Vuelva a cargar el demonio systemd para aplicar los cambios:
sudo systemctl daemon-reload
Configure Tomcat para que se inicie automáticamente al arrancar:
sudo systemctl enable tomcat
5. Instale el servidor Apache HTTP
Apache está disponible en los repositorios de software predeterminados de Ubuntu. Para instalarlo, escriba el siguiente comando:
sudo apt install apache2
6. Configurar Tomcat para trabajar con Apache
Para integrar los procesos del servidor Apache Tomcat con el servidor Apache HTTP, necesitamos el módulo mod_jk , que implementa la interfaz entre Tomcat y Apache, combinada con algunos pequeños pasos para configurar Apache y Tomcat según nuestras necesidades.
6.1 Instalar el módulo mod_jk
Instalación y configuración de mod_jk es la clave para que el servidor web y el servidor de aplicaciones funcionen juntos. Entonces, vamos a instalarlo:
sudo apt install libapache2-mod-jk
6.2 Configurando mod_jk con Apache y Tomcat.
Deberá habilitar el conector AJP en Tomcat para que el servidor Apache pueda redirigir las solicitudes a Tomcat. Hiciste esto editando el server.xml
de Tomcat archivo.
sudo vim /opt/tomcat/conf/server.xml
Asegúrese de que el Conector AJP a continuación esté activo y no comentado.
<Connector protocol="AJP/1.3" port="8009" secretRequired="false" redirectPort="8443" />
Necesitamos configurar el servidor Apache HTTP para cargar e inicializar el módulo JK.
Necesitamos crear el /etc/apache2/workers.properties
expediente. Este archivo define una lista de "trabajadores" de Tomcat a los que Apache puede pasar solicitudes.
sudo vim /etc/apache2/workers.properties
y pegue lo siguiente en el archivo:
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
A continuación, haga referencia a este archivo en el archivo de configuración principal de Apache apache2.conf
:
sudo vim /etc/apache2/apache2.conf
Agregamos estas líneas al final:
JkWorkersFile /etc/apache2/workers.properties
# Where to put jk shared memory
JkShmFile /var/log/apache2/mod_jk.shm
# Where to put jk logs
JkLogFile /var/log/apache2/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 ] "
6.3 Configure qué URL administrar con Apache
En este punto, deberá configurar Apache para indicarle qué URL procesar y transferir a Tomcat y qué URL desea que Apache procese.
sudo vim /etc/apache2/sites-enabled/000-default.conf
Agregue la siguiente línea debajo de DocumentRoot
entrada. Esto hace posible solicitar JRS a través del servidor web Apache.
JkMount /examples worker1
JkMount /examples/* worker1
7. Cómo verificar que está funcionando
Reinicie los servicios de Apache y Tomcat:
sudo systemctl restart apache2
sudo systemctl restart tomcat
Una vez que inicie el servidor, abra su navegador de Internet y vaya a la URL http://server_ip_address:8080
. Tomcat se instaló correctamente si ve una página similar a la de la imagen a continuación.
Una forma sencilla de verificar que la integración entre Apache HTTP Server y Tomcat está funcionando es solicitar uno de los archivos de ejemplo que Tomcat debería ofrecer.
Apunte su navegador a http://server_ip_address/examples/
y ejecute algunas de las aplicaciones de muestra.
¡Felicidades! Ha integrado con éxito Tomcat con Apache HTTP Server.