Cómo instalar Apache Tomcat 9 en Debian 10

Introducción
Apache Tomcat es un servidor web y un contenedor de servlets que se utiliza para ofrecer aplicaciones Java. Tomcat es una implementación de código abierto de las tecnologías Java Servlet y JavaServer Pages, publicada por la Apache Software Foundation. Este tutorial cubre la instalación básica y algunas configuraciones de la última versión de Tomcat 9 en su servidor Debian 10.
Prerrequisitos
Antes de comenzar con esta guía, debe tener un usuario no root con sudo
privilegios configurados en su servidor. Puede aprender a hacerlo completando nuestra guía de configuración inicial del servidor Debian 10.
Paso 1: Instalar Java
Tomcat requiere que Java esté instalado en el servidor para que se pueda ejecutar cualquier código de aplicación web Java. Podemos satisfacer ese requisito instalando OpenJDK con apt.
Primero, actualice el índice de su paquete apt:
- sudo apt update
A continuación, instale el paquete Java Development Kit con apt:
- sudo apt install default-jdk
Ahora que Java está instalado, podemos crear un tomcat
usuario, que se utilizará para ejecutar el servicio Tomcat.
Paso 2: Crear un usuario de Tomcat
Por razones de seguridad, Tomcat debe ejecutarse como un usuario sin privilegios (es decir, no como root ). Crearemos un nuevo usuario y grupo que ejecutará el servicio Tomcat.
Primero, crea un nuevo grupo de Tomcat :
- sudo groupadd tomcat
A continuación, creamos un nuevo usuario de Tomcat . Haremos que este usuario sea miembro del grupo Tomcat , con un directorio de inicio de /opt/tomcat
(donde instalaremos Tomcat) y con un shell de /bin/false
(para que nadie pueda iniciar sesión en la cuenta):
- sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Ahora que nuestro usuario Tomcat está configurado, descarguemos e instalemos Tomcat.
Paso 3: Instalar Tomcat
La mejor manera de instalar Tomcat 9 es descargar la última versión binaria y luego configurarlo manualmente.
Busque la última versión de Tomcat 9 en la página de descargas de Tomcat 9. En el momento de escribir este artículo, la última versión es la 9.0.27 , pero debería utilizar una versión estable posterior si está disponible. En la sección Distribuciones binarias , luego en la lista de núcleos , copie el enlace al archivo “tar.gz”.
A continuación, vuelve a tu sesión SSH y dirígete al /tmp
directorio de tu servidor. Este es un buen directorio para descargar elementos efímeros, como el archivo tar de Tomcat, que no necesitaremos después de extraer el contenido de Tomcat:
- cd /tmp
Usaremos la curl
herramienta de línea de comandos para descargar el archivo tar. Instalación curl
:
- sudo apt install curl
Ahora, usa curl
para descargar el enlace que copiaste del sitio web de Tomcat:
- curl -O http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.11/bin/apache-tomcat-9.0.11.tar.gz
Instalaremos Tomcat en el /opt/tomcat
directorio. Creamos el directorio y luego extraemos el archivo en él con estos comandos:
- sudo mkdir /opt/tomcat
- sudo tar xzvf apache-tomcat-9*tar.gz -C /opt/tomcat --strip-components=1
A continuación, configuraremos los permisos de usuario adecuados para nuestra instalación.
Paso 4: Actualizar permisos
El usuario de Tomcat que creamos debe tener acceso a la instalación de Tomcat. Lo configuraremos ahora.
Cambie al directorio donde descomprimimos la instalación de Tomcat:
- cd /opt/tomcat
Otorgue al grupo Tomcat la propiedad sobre todo el directorio de instalación:
- sudo chgrp -R tomcat /opt/tomcat
A continuación, otorgue al grupo tomcatread
acceso al conf
directorio y a todo su contenido, y execute
acceso al directorio en sí:
- sudo chmod -R g+r conf
- sudo chmod g+x conf
Convierte al usuario tomcat en el propietario de los directorios webapps
, work
, temp
y :logs
- sudo chown -R tomcat webapps/ work/ temp/ logs/
Ahora que se han configurado los permisos adecuados, crearemos un archivo de servicio systemd para administrar el proceso Tomcat.
Paso 5: Crear un archivo de servicio systemd
Queremos poder ejecutar Tomcat como un servicio, por lo que configuraremos el archivo de servicio systemd.
Tomcat necesita saber dónde está instalado Java. Esta ruta se conoce comúnmente como JAVA_HOME
. La forma más fácil de buscar esa ubicación es ejecutando este comando:
- sudo update-java-alternatives -l
Outputjava-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
El tuyo JAVA_HOME
es el resultado de la última columna (resaltada arriba). Dado el ejemplo anterior, lo correcto JAVA_HOME
para este servidor sería:
JAVA_HOME/usr/lib/jvm/java-1.11.0-openjdk-amd64
Puede que JAVA_HOME
seas diferente.
Con esta información, podemos crear el archivo de servicio systemd. Abra un archivo llamado tomcat.service
en el /etc/systemd/system
directorio escribiendo:
- sudo nano /etc/systemd/system/tomcat.service
Pegue el siguiente contenido en su archivo de servicio. Modifique el valor de JAVA_HOME
si es necesario para que coincida con el valor que encontró en su sistema. También puede modificar la configuración de asignación de memoria que se especifica en CATALINA_OPTS
:
/etc/systemd/system/tomcat.servicio
[Unit]Description=Apache Tomcat Web Application ContainerAfter=network.target[Service]Type=forkingEnvironment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pidEnvironment=CATALINA_HOME=/opt/tomcatEnvironment=CATALINA_BASE=/opt/tomcatEnvironment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'ExecStart=/opt/tomcat/bin/startup.shExecStop=/opt/tomcat/bin/shutdown.shUser=tomcatGroup=tomcatUMask=0007RestartSec=10Restart=always[Install]WantedBy=multi-user.target
Cuando haya terminado, guarde y cierre el archivo.
A continuación, vuelva a cargar el demonio systemd para que conozca nuestro archivo de servicio:
- sudo systemctl daemon-reload
Inicie el servicio Tomcat escribiendo:
- sudo systemctl start tomcat
Vuelva a verificar que se inició sin errores escribiendo:
- sudo systemctl status tomcat
Debería ver un resultado similar al siguiente:
Output● tomcat.service - Apache Tomcat Web Application Container Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2019-10-24 17:18:11 UTC; 4s ago Process: 5962 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 5970 (java) Tasks: 44 (limit: 2377) Memory: 184.2M CGroup: /system.slice/tomcat.service └─5970 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.uOct 24 17:18:10 tomcat systemd[1]: Starting Apache Tomcat Web Application Container...Oct 24 17:18:11 tomcat startup.sh[5962]: Tomcat started.Oct 24 17:18:11 tomcat systemd[1]: Started Apache Tomcat Web Application Container.
Esto confirma que Tomcat está en funcionamiento en su servidor.
Paso 6: Ajuste el firewall y pruebe el servidor Tomcat
Ahora que se ha iniciado el servicio Tomcat, podemos realizar pruebas para asegurarnos de que la página predeterminada esté disponible.
Antes de hacer eso, debemos ajustar el firewall para permitir que nuestras solicitudes lleguen al servicio. Si siguió los requisitos previos, tendrá un ufw
firewall habilitado en este momento.
Tomcat utiliza el puerto 8080
para aceptar solicitudes. Para permitir el tráfico a ese puerto, escriba lo siguiente:
- sudo ufw allow 8080
Con el firewall modificado, puede acceder a la página de inicio predeterminada yendo a su dominio o dirección IP y luego, :8080
en un navegador web:
Open in web browserhttp://server_domain_or_IP:8080
Verá la página de inicio predeterminada de Tomcat, además de otra información. Sin embargo, si hace clic en los enlaces de la aplicación Manager, por ejemplo, se le negará el acceso. Podemos configurar ese acceso a continuación.
Si pudo acceder exitosamente a Tomcat, ahora es un buen momento para habilitar el archivo de servicio para que Tomcat se inicie automáticamente al arrancar:
- sudo systemctl enable tomcat
Paso 7: Configurar la interfaz de administración web de Tomcat
Para poder utilizar la aplicación web de administración que viene con Tomcat, debemos agregar un inicio de sesión a nuestro servidor Tomcat. Para ello, editaremos el tomcat-users.xml
archivo:
- sudo nano /opt/tomcat/conf/tomcat-users.xml
Deberá agregar un usuario que pueda acceder a manager-gui
y admin-gui
(aplicaciones web que vienen con Tomcat). Puede hacerlo definiendo un usuario, similar al ejemplo siguiente, entre las tomcat-users
etiquetas. Asegúrese de cambiar el nombre de usuario y la contraseña por algo seguro:
tomcat-usuarios.xml
tomcat-users. . . user username="admin" password="password" roles="manager-gui,admin-gui"//tomcat-users
Guarde y cierre el archivo cuando haya terminado.
De forma predeterminada, las versiones más nuevas de Tomcat restringen el acceso a las aplicaciones Manager y Host Manager a las conexiones que provienen del propio servidor. Dado que estamos realizando la instalación en una máquina remota, probablemente desees eliminar o modificar esta restricción. Para cambiar las restricciones de dirección IP en estas, abre los context.xml
archivos correspondientes.
Para la aplicación Administrador, escriba:
- sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
Para la aplicación Host Manager, escriba:
- sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
Dentro, comente la restricción de la dirección IP para permitir conexiones desde cualquier lugar. Alternativamente, si desea permitir el acceso solo a conexiones provenientes de su propia dirección IP, puede agregar su dirección IP pública a la lista:
Archivos context.xml para aplicaciones web Tomcat
Context antiResourceLocking="false" privileged="true" !--Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" /--/Context
Guarde y cierre los archivos cuando haya terminado.
Para que nuestros cambios surtan efecto, reinicie el servicio Tomcat:
- sudo systemctl restart tomcat
Paso 8: Acceda a la interfaz web
Ahora que hemos creado un usuario, podemos acceder nuevamente a la interfaz de administración web en un navegador web. Una vez más, puede acceder a la interfaz correcta ingresando el nombre de dominio o la dirección IP de su servidor y luego el puerto 8080 en su navegador:
Open in web browserhttp://server_domain_or_IP:8080
La página que ves debería ser la misma que te dieron cuando realizaste la prueba anterior:
Echemos un vistazo a la aplicación Manager, a la que se puede acceder a través del enlace o . Deberá ingresar las credenciales de la cuenta que agregó al archivo. Luego, debería ver una página que se parece a esta:http://server_domain_or_IP:8080/manager/html
tomcat-users.xml
El Administrador de aplicaciones web se utiliza para administrar sus aplicaciones Java. Aquí puede iniciar, detener, recargar, implementar y anular la implementación. También puede ejecutar algunos diagnósticos en sus aplicaciones (por ejemplo, encontrar fugas de memoria). Por último, la información sobre su servidor está disponible en la parte inferior de esta página.
Ahora echemos un vistazo al Administrador de host, accesible a través del enlace o :http://server_domain_or_IP:8080/host-manager/html/
Desde la página Administrador de host virtual, puede agregar hosts virtuales para servir sus aplicaciones.
Conclusión
¡La instalación de Tomcat está completa! Ahora puede implementar sus propias aplicaciones web Java.
Actualmente, su instalación de Tomcat funciona, pero no está encriptada. Esto significa que todos los datos, incluidos los elementos confidenciales como las contraseñas, se envían en texto sin formato que puede ser interceptado y leído por otras partes en Internet. Para evitar que esto suceda, se recomienda encarecidamente que encripte sus conexiones con SSL. Puede averiguar cómo encriptar sus conexiones a Tomcat siguiendo esta guía (nota: esta guía cubre el cifrado de Tomcat 8 en Ubuntu 16.04).
Deja una respuesta