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 amplio conjunto de características que incluyen, ligero, altamente flexible, bien documentado, ofrece un nivel adicional de seguridad, maduro y más.
En este tutorial, explicaremos cómo instalar Apache Tomcat 10 en un servidor Debian 10.
Requisitos
- Un servidor que ejecuta Debian 10.
- Un nombre de dominio válido apuntado con la IP de su servidor.
- Se configura una contraseña raíz en el servidor.
Cómo empezar
Antes de comenzar, actualice los paquetes de su sistema a la última versión con el siguiente comando:
apt-get update -y
Una vez que todos los paquetes estén actualizados, puede continuar con el siguiente paso.
Instalar Java
Apache Tomcat es una aplicación basada en Java. Por lo tanto, deberá instalar Java en su servidor. Puede instalar Java con el siguiente comando:
apt-get install default-jdk -y
Después de la instalación, verifique la versión de Java usando el siguiente comando:
java --version
El siguiente resultado le mostrará la versión de Java instalada en su 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 haya terminado, puede continuar con el siguiente paso.
Instalar Apache Tomcat
Al momento de escribir este tutorial, la última versión disponible de Apache Tomcat es 10.0.7.
Primero, agregue el usuario para ejecutar Apache Tomcat usando el siguiente comando:
useradd -m -d /opt/tomcat -U -s /bin/false tomcat
A continuación, descargue Apache Tomcat 10 usando 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 que se complete la descarga, extraiga el archivo descargado al directorio /opt/tomcat usando el siguiente comando:
tar -xzvf apache-tomcat-10.0.7.tar.gz -C /opt/tomcat --strip-components=1
A continuación, establezca la propiedad adecuada en el directorio /opt/tomcat con el siguiente comando:
chown -R tomcat:tomcat /opt/tomcat/
Una vez que haya terminado, puede continuar con el siguiente paso.
Crear usuario administrador web de Tomcat
A continuación, deberá crear un usuario administrador para acceder a la interfaz de administración de Tomcat. Puede crearlo editando el archivo tomcat-users.xml:
nano /opt/tomcat/conf/tomcat-users.xml
Agregue 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" />
Guarde y cierre el archivo después de terminar. Ahora puede continuar con el siguiente paso.
Permitir acceso remoto de Tomcat
De forma predeterminada, Tomcat está configurado para acceder solo desde el sistema local. Por lo tanto, deberá configurar Tomcat para poder acceder a él desde el sistema remoto.
Primero, edite el context.xml archivo para permitir el acceso remoto a la aplicación del administrador 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" />
Guarde y cierre el archivo, luego edite el context.xml archivo para permitir el acceso remoto a la aplicación del administrador de host 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" />
Guarde y cierre el archivo cuando haya terminado. Ahora puede continuar con el siguiente paso.
Crear un archivo de unidad Systemd para Tomcat
A continuación, deberá crear un archivo de unidad systemd para administrar el servicio Tomcat. Puedes crearlo con el siguiente comando:
nano /etc/systemd/system/tomcat.service
Agregue 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
Guarde y cierre el archivo, luego vuelva a cargar el demonio systemd para aplicar los cambios:
systemctl daemon-reload
A continuación, inicie el servicio Tomcat y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:
systemctl start tomcat
systemctl enable tomcat
Ahora puede verificar el estado del servicio Tomcat usando el siguiente comando:
systemctl status tomcat
Deberías obtener el siguiente resultado:
? 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 se inicia y escucha en el puerto 8080. Puede verificarlo con el siguiente comando:
ss -antpl | grep 8080
Deberías obtener el siguiente resultado:
LISTEN 0 100 *:8080 *:* users:(("java",pid=5713,fd=43))
Una vez que haya terminado, puede continuar con el siguiente paso.
Configurar Nginx para Tomcat
A continuación, se recomienda utilizar Nginx como proxy inverso para acceder a la aplicación Tomcat.
Primero, instale el servidor web Nginx usando el siguiente comando:
apt-get install nginx -y
Una vez que Nginx esté instalado, cree un nuevo archivo de configuración de host virtual de Nginx:
nano /etc/nginx/conf.d/tomcat.conf
Agregue 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/; } }
Guarde y cierre el archivo cuando haya terminado, luego verifique el Nginx para detectar cualquier error de sintaxis con el siguiente comando:
nginx -t
Deberías obtener el siguiente resultado:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
A continuación, reinicie Nginx para aplicar los cambios:
systemctl restart nginx
También puede verificar el estado del servicio Nginx usando el siguiente comando:
systemctl status nginx
Si todo está bien, debería ver el siguiente resultado:
? 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 haya terminado, puede continuar con el siguiente paso.
Acceder a la aplicación Tomcat
Ahora, abra su navegador web y acceda a la aplicación Tomcat usando la URL http://tomcat.example.com . Será redirigido a la siguiente página:
Haga clic en Administrar aplicación . Debería ver la página de inicio de sesión de la aplicación Manager:
Proporcione su nombre de usuario y contraseña de administrador y haga clic en Iniciar sesión botón. Debería ver el panel de control de la aplicación Manager en la siguiente página:
Para acceder al Administrador de host, haga clic en Administrador de host desde la página de inicio de Tomcat. Debería ver la página de inicio de sesión de Tomcat Host Manager:
Proporcione su nombre de usuario y contraseña de administrador y haga clic en Iniciar sesión botón. Debería ver el panel de control de Tomcat Host Manager en la siguiente página:
Conclusión
¡Felicidades! Ha instalado con éxito Apache Tomcat 10 en el servidor Debian 10. Ahora puede crear una aplicación Java y alojarla utilizando Apache Tomcat. Siéntase libre de preguntarme si tiene alguna pregunta.