Cómo instalar Apache Tomcat 10 en Debian 10
Apache Tomcat es de código abierto y el servidor de aplicaciones web más popular utilizado para alojar aplicaciones basadas en Java. Viene con Java Servlet, JavaServer Pages (JSP), Java EL, y proporciona un entorno para ejecutar códigos Java. Tomcat ofrece un rico conjunto de características que incluyen, peso ligero, alta flexibilidad, bien documentado, ofrece un nivel extra de seguridad, madurez y más.
En este tutorial, explicaremos cómo instalar Apache Tomcat 10 en un servidor Debian 10.
Requisitos previos
- Un servidor con Debian 10.
- Un nombre de dominio válido apuntado con la IP de tu servidor.
- Una contraseña de root configurada en el servidor.
Cómo empezar
Antes de empezar, actualiza los paquetes de tu sistema a la última versión con el siguiente comando:
apt-get update -y
Una vez actualizados todos los paquetes, puedes pasar al siguiente paso.
Instalar Java
Apache Tomcat es una aplicación basada en Java. Por tanto, necesitarás instalar Java en tu servidor. Puedes instalar Java con el siguiente comando:
apt-get install default-jdk -y
Tras la instalación, verifica la versión de Java con el siguiente comando:
java --version
La siguiente salida te mostrará la versión de Java instalada en tu servidor.
openjdk 11.0.11 2021-04-20 OpenJDK Runtime Environment (build 11.0.11+9-post-Debian-1deb10u1) OpenJDK 64-Bit Server VM (build 11.0.11+9-post-Debian-1deb10u1, mixed mode, sharing)
Una vez que hayas terminado, puedes pasar al siguiente paso.
Instalar Apache Tomcat
En el momento de escribir este tutorial, la última versión disponible de Apache Tomcat es la 10.0.7.
En primer lugar, añade el usuario para ejecutar Apache Tomcat mediante el siguiente comando:
useradd -m -d /opt/tomcat -U -s /bin/false tomcat
A continuación, descarga el Apache Tomcat 10 utilizando el siguiente comando:
wget https://mirrors.estointernet.in/apache/tomcat/tomcat-10/v10.0.7/bin/apache-tomcat-10.0.7.tar.gz
Una vez completada la descarga, extrae el archivo descargado al directorio /opt/tomcat utilizando el siguiente comando:
tar -xzvf apache-tomcat-10.0.7.tar.gz -C /opt/tomcat --strip-components=1
A continuación, establece la propiedad adecuada en el directorio /opt/tomcat utilizando el siguiente comando:
chown -R tomcat:tomcat /opt/tomcat/
Una vez que hayas terminado, puedes pasar al siguiente paso.
Crear un usuario administrador web de Tomcat
A continuación, tendrás que crear un usuario administrador para acceder a la interfaz de administración de Tomcat. Puedes crearlo editando el archivo tomcat-users.xml:
nano /opt/tomcat/conf/tomcat-users.xml
Añade las siguientes líneas antes de la última línea:
<role rolename="manager-gui" /> <user username="manager" password="pasword" roles="manager-gui" /> <role rolename="admin-gui" /> <user username="admin" password="password" roles="manager-gui,admin-gui" />
Guarda y cierra el archivo cuando hayas terminado. Ahora puedes pasar al siguiente paso.
Permitir el acceso remoto a Tomcat
Por defecto, Tomcat está configurado para acceder sólo desde el sistema local. Así que tendrás que configurar Tomcat para que se pueda acceder a él desde el sistema remoto.
En primer lugar, edita el archivo context.xml para permitir el acceso remoto a la aplicación gestora de Tomcat:
nano /opt/tomcat/webapps/manager/META-INF/context.xml
Elimina o comenta las siguientes líneas:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
Guarda y cierra el archivo y, a continuación, edita el archivo context. xml para permitir el acceso remoto a la aplicación gestora de Tomcat:
nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
Elimina las siguientes líneas:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
Guarda y cierra el archivo cuando hayas terminado. Ahora puedes pasar al siguiente paso.
Crear un archivo de unidad Systemd para Tomcat
A continuación, tendrás que crear un archivo de unidad systemd para gestionar el servicio Tomcat. Puedes crearlo con el siguiente comando:
nano /etc/systemd/system/tomcat.service
Añade las siguientes líneas:
[Unit] Description=Tomcat After=network.target [Service] Type=forking User=tomcat Group=tomcat Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-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
Guarda y cierra el archivo y vuelve a cargar el demonio systemd para aplicar los cambios:
systemctl daemon-reload
A continuación, inicia el servicio Tomcat y permite que se inicie al reiniciar el sistema con el siguiente comando:
systemctl start tomcat
systemctl enable tomcat
Ahora puedes comprobar el estado del servicio Tomcat con el siguiente comando:
systemctl status tomcat
Deberías obtener la siguiente salida:
? tomcat.service - Tomcat Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2021-07-01 04:58:39 UTC; 15s ago Process: 5706 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 5713 (java) Tasks: 29 (limit: 2359) Memory: 154.7M CGroup: /system.slice/tomcat.service ??5713 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.ut Jul 01 04:58:39 tomcat systemd[1]: Starting Tomcat... Jul 01 04:58:39 tomcat startup.sh[5706]: Tomcat started. Jul 01 04:58:39 tomcat systemd[1]: Started Tomcat.
En este punto, Tomcat está iniciado y escuchando en el puerto 8080. Puedes comprobarlo con el siguiente comando:
ss -antpl | grep 8080
Deberías obtener la siguiente salida:
LISTEN 0 100 *:8080 *:* users:(("java",pid=5713,fd=43))
Una vez que hayas terminado, puedes pasar al siguiente paso.
Configurar Nginx para Tomcat
A continuación, se recomienda utilizar Nginx como proxy inverso para acceder a la aplicación Tomcat.
En primer lugar, instala el servidor web Nginx con el siguiente comando:
apt-get install nginx -y
Una vez instalado Nginx, crea un nuevo archivo de configuración del host virtual Nginx:
nano /etc/nginx/conf.d/tomcat.conf
Añade las siguientes líneas:
server { listen 80; server_name tomcat.example.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080/; } }
Guarda y cierra el archivo cuando hayas terminado y luego verifica que el Nginx no tenga ningún error de sintaxis con el siguiente comando:
nginx -t
Deberías obtener la siguiente salida:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
A continuación, reinicia el Nginx para aplicar los cambios:
systemctl restart nginx
También puedes comprobar el estado del servicio Nginx con el siguiente comando:
systemctl status nginx
Si todo está bien, deberías ver la siguiente salida:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2021-07-01 05:00:32 UTC; 6s ago Docs: man:nginx(8) Process: 6322 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 6323 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 6324 (nginx) Tasks: 2 (limit: 2359) Memory: 2.7M CGroup: /system.slice/nginx.service ??6324 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??6325 nginx: worker process Jul 01 05:00:32 tomcat systemd[1]: Starting A high performance web server and a reverse proxy server... Jul 01 05:00:32 tomcat systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument Jul 01 05:00:32 tomcat systemd[1]: Started A high performance web server and a reverse proxy server.
Una vez que hayas terminado, puedes pasar al siguiente paso.
Accede a la aplicación Tomcat
Ahora, abre tu navegador web y accede a la aplicación Tomcat utilizando la URL http://tomcat.example.com. Serás redirigido a la siguiente página:
Haz clic en la App Gestora. Deberías ver la página de inicio de sesión de la App Manager:
Proporciona tu nombre de usuario y contraseña de administrador y haz clic en el botón Iniciar sesión. Deberías ver el panel de control de la App Manager en la siguiente página:
Para acceder al Gestor de Anfitriones, haz clic en el Gestor de Anfitriones desde la página de inicio de Tomcat. Deberías ver la página de inicio de sesión del Gestor de Anfitriones de Tomcat:
Proporciona tu nombre de usuario y contraseña de administrador y haz clic en el botón Iniciar sesión. Deberías ver el panel de control del Administrador de Anfitriones Tomcat en la siguiente página:
Conclusión
Enhorabuena! has instalado con éxito Apache Tomcat 10 en el servidor Debian 10. Ahora puedes crear una aplicación Java y alojarla utilizando el Apache Tomcat. No dudes en preguntarme si tienes alguna duda.