Cómo instalar Apache Tomcat 9 con Nginx Proxy en Debian 10

gato apache

Tomcat es un servidor de aplicaciones gratuito, de código abierto y ligero que se utiliza para implementar aplicaciones basadas en Java. Puede usarse como un servidor independiente o combinado con otros servidores como Apache y Nginx. Proporciona la funcionalidad extendida para interactuar con Java Servlets y también implementa varias especificaciones técnicas de la plataforma Java. Actualmente, Tomcat es uno de los servidores de aplicaciones para Java más utilizados.

En este tutorial, le mostraré cómo instalar Tomcat 9 con Nginx en Debian 10.

requisitos previos

  • Un servidor que ejecuta Debian 10.
  • Un nombre de dominio v√°lido apuntado con la IP de su servidor.
  • Una contrase√Īa de root est√° configurada en su servidor.

Empezando

Antes de comenzar, es una buena idea actualizar su cach√© APT a la √ļltima versi√≥n. Puede actualizarlo ejecutando el siguiente comando:

apt-get update -y

Una vez que la caché de paquetes de su sistema esté actualizada, puede continuar con el siguiente paso.

Instalar Java

Tomcat es una aplicación basada en Java, por lo que Java debe estar instalado en su servidor. Si no está instalado, puede instalarlo con el siguiente comando:

apt-get install default-jdk -y

Una vez que Java está instalado, puede verificar la versión de Java con el siguiente comando:

java --version

Deberías obtener el siguiente resultado:

openjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode, sharing)

Una vez que haya terminado, puede continuar con el siguiente paso.

Instalar Tomcat

Primero, deber√° crear un usuario dedicado para ejecutar el servidor Tomcat. Puedes crearlo con el siguiente comando:

useradd -m -U -d /opt/tomcat -s /bin/false tomcat

A continuaci√≥n, descargue la √ļltima versi√≥n de Tomcat con el siguiente comando:

wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.45/bin/apache-tomcat-9.0.45.tar.gz

Una vez que se complete la descarga, extraiga el archivo descargado con el siguiente comando:

tar -xvzf apache-tomcat-9.0.45.tar.gz

A continuación, mueva el directorio extraído a /opt con el siguiente comando:

mv apache-tomcat-9.0.45 /opt/tomcat/tomcat

A continuación, establezca el permiso y la propiedad adecuados con el siguiente comando:

chown -R tomcat:tomcat /opt/tomcat/tomcat
chmod -R 755 /opt/tomcat/tomcat

Una vez que haya terminado, puede continuar con el siguiente paso.

Crear un archivo de servicio de Systemd para Tomcat

A continuación, deberá crear un archivo de servicio 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 9.0 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/default-java"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/opt/tomcat/tomcat"
Environment="CATALINA_HOME=/opt/tomcat/tomcat"
Environment="CATALINA_PID=/opt/tomcat/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Guarde y cierre el archivo, luego vuelva a cargar el demonio systemd con el siguiente comando:

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

También puede verificar el estado de Tomcat con el siguiente comando:

systemctl status tomcat

Deberías obtener el siguiente resultado:

? tomcat.service - Tomcat 9.0 servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-04-14 05:41:21 UTC; 42s ago
  Process: 5784 ExecStart=/opt/tomcat/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 5791 (java)
    Tasks: 30 (limit: 4701)
   Memory: 159.1M
   CGroup: /system.slice/tomcat.service
           ??5791 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/opt/tomcat/tomcat/conf/logging.properties -Djava.util.log

Apr 14 05:41:21 debian systemd[1]: Starting Tomcat 9.0 servlet container...
Apr 14 05:41:21 debian startup.sh[5784]: Tomcat started.
Apr 14 05:41:21 debian systemd[1]: Started Tomcat 9.0 servlet container.

Una vez que haya terminado, puede continuar con el siguiente paso.

Configurar la interfaz web de Tomcat

A continuación, deberá definir un usuario para acceder a la interfaz web de Tomcat. Puede definirlo utilizando el archivo tomcat-users.xml:

nano /opt/tomcat/tomcat/conf/tomcat-users.xml

Busque la sección y agregue o modifique las siguientes líneas:

  <role rolename="admin-gui"/>
  <role rolename="manager-gui"/>
  <user username="tomcatadmin" password="password" roles="admin-gui,manager-gui"/>

Guarde y cierre el archivo cuando haya terminado.

De forma predeterminada, la interfaz web de Tomcat est√° configurada para acceder solo desde el host local. Por lo tanto, deber√° configurarlo para el acceso externo.

Para la aplicación Manager, edite la siguiente línea:

nano /opt/tomcat/tomcat/webapps/manager/META-INF/context.xml

Para la aplicación Host Manager, edite el siguiente archivo:

nano /opt/tomcat/tomcat/webapps/host-manager/META-INF/context.xml

Eliminar la siguiente línea:

  <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 reinicie el servicio Tomcat para aplicar los cambios:

systemctl restart tomcat

Una vez que haya terminado, puede continuar con el siguiente paso.

Configurar Nginx para Tomcat

A continuación, deberá instalar y configurar Nginx como un proxy inverso para Tomcat. Primero, instale el paquete Nginx con el siguiente comando:

apt-get install nginx -y

Una vez que se haya instalado Nginx, deberá crear un nuevo archivo de configuración de host virtual de Nginx para Tomcat. Puedes crearlo usando el siguiente comando:

nano /etc/nginx/conf.d/tomcat.conf

Agregue las siguientes líneas:

server {
  listen          80;
  server_name     tomcat.example.com;
  root            /opt/tomcat/tomcat/webapps/;


  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, luego verifique el Nginx para cualquier error de sintaxis:

nginx -t

Debería ver 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 el servicio Nginx para aplicar los cambios:

systemctl restart nginx

A continuación, verifique el estado del servicio Nginx con el siguiente comando:

systemctl status nginx

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 Wed 2021-04-14 05:57:03 UTC; 1min 38s ago
     Docs: man:nginx(8)
  Process: 6852 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 6853 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 6854 (nginx)
    Tasks: 3 (limit: 4701)
   Memory: 4.0M
   CGroup: /system.slice/nginx.service
           ??6854 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           ??6855 nginx: worker process
           ??6856 nginx: worker process

Apr 14 05:57:03 debian systemd[1]: Starting A high performance web server and a reverse proxy server...
Apr 14 05:57:03 debian systemd[1]: Started A high performance web server and a reverse proxy server.

En este punto, Nginx est√° configurado para acceder a Tomcat. Ahora puede continuar con el siguiente paso.

Acceder a la interfaz de usuario web de Tomcat

Ahora, abra su navegador web y acceda a la interfaz de usuario web de Tomcat usando la URL http://tomcat.ejemplo.com. Deberías ver la siguiente página:

gato apache

Haga clic en el Gerente aplicacióndeberías ver la siguiente página:

Inicio de sesión

Proporcione su nombre de usuario y contrase√Īa de administrador de la aplicaci√≥n Manager y haga clic en el Registrarse bot√≥n. Deber√≠as ver la siguiente p√°gina:

Tablero Tomcat

También puede hacer clic en el Administrador de host para acceder a la aplicación Host Manager como se muestra a continuación:

Administrador de alojamiento virtual

Conclusión

¡Felicidades! ha instalado con éxito Tomcat con Nginx como proxy inverso en Debian 10. Ahora puede implementar su aplicación Java fácilmente con Tomcat. No dude en preguntarme si tiene alguna pregunta.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *