En este artículo, te guiaremos paso a paso en el proceso de desplegar Apache Tomcat con Nginx como proxy inverso en Ubuntu 22.04. También te proporcionaremos una guía de instalación detallada del JDK de Java, que es un requisito previo para ejecutar Apache Tomcat.
Requisitos previos
Antes de sumergirnos en el proceso principal, es importante entender los requisitos previos necesarios para el despliegue de Apache Tomcat con Nginx como proxy inverso en Ubuntu 22.04. Asegúrate de tener lo siguiente:
- Un servidor que ejecute Ubuntu 22.04.
- Un nombre de dominio válido que apunte a la dirección IP de tu servidor.
- Una contraseña de root configurada en el servidor.
Instalación de Java JDK
Dado que Apache Tomcat está basado en Java, es necesario asegurarse de que Java esté instalado en tu servidor. Si no lo está, puedes instalarlo utilizando el siguiente comando:
apt installdefault-jdk -y
Puedes verificar la versión de Java utilizando el siguiente comando:
java-version
Asegúrate de que la salida se parezca a esto:
openjdk version "11.0.15" 2022-04-19 OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1) OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)
Despliegue de Apache Tomcat en Ubuntu 22.04
Se recomienda ejecutar Tomcat como un usuario separado por razones de seguridad. Puedes crear un usuario de Tomcat con el siguiente comando:
useradd -m -d /opt/tomcat -s /bin/false tomcat
A continuación, descarga la última versión de Apache Tomcat:
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.20/bin/apache-tomcat-10.0.20.tar.gz
Después, extrae el archivo descargado dentro del directorio /opt
, establece la propiedad y los permisos adecuados para el directorio de Tomcat:
tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1 chown -R tomcat:tomcat /opt/tomcat/ chmod -R u+x /opt/tomcat/bin
Creación de un usuario administrativo de Tomcat
De forma predeterminada, Tomcat se puede acceder sin autenticación. Te recomendamos habilitar la autenticación y crear un usuario administrador para Tomcat:
nano /opt/tomcat/conf/tomcat-users.xml
Añade las siguientes líneas antes de la etiqueta <tomcat-users>
:
<role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="admin" password="password" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
Habilitación de acceso remoto a Tomcat
De forma predeterminada, Tomcat está configurado para ser accedido solo desde el host local. Sin embargo, es posible que desees administrar Tomcat desde un host remoto. Para hacerlo, edita el siguiente archivo:
nano /opt/tomcat/webapps/manager/META-INF/context.xml
Elimina la siguiente línea:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1"/>
Haz lo mismo para la aplicación host manager:
nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
Creación de un archivo de servicio para Apache Tomcat
A continuación, necesitarás crear un archivo de servicio para administrar el servicio de Tomcat a través de systemd:
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
Recarga el demonio de systemd, inicia el servicio de Tomcat y habilita su inicio en el arranque del sistema:
systemctl daemon-reload
systemctl start tomcat
systemctl enable tomcat
Puedes verificar el estado de Apache Tomcat utilizando el siguiente comando:
systemctl status tomcat
Configuración de Nginx como proxy inverso para Tomcat
Ahora, necesitarás crear un proxy inverso de Nginx para Apache Tomcat. Primero, instala el servidor web Nginx:
apt-get install nginx -y
A continuación, crea un archivo de configuración de host virtual de 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/tomcat-access.log; error_log /var/log/nginx/tomcat-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/; } }
Verifica la sintaxis de Nginx en busca de errores y reinicia el servicio de Nginx:
nginx -t
systemctl restart nginx
Acceso a Apache Tomcat
Finalmente, abre tu navegador web y accede a la interfaz web de Apache Tomcat utilizando la URL http://tomcat.example.com
. Deberías ver el panel de control de Tomcat. Haz clic en la aplicación Manager y proporciona tu nombre de usuario y contraseña de administrador.
Enhorabuena! Has desplegado con éxito Apache Tomcat con Nginx como proxy inverso en Ubuntu 22.04. Ahora estás listo para alojar tu primera aplicación Java utilizando Apache Tomcat. No dudes en probar este despliegue con Shape.host Cloud Instances, nuestra solución de alojamiento en la nube eficiente y segura. Si tienes alguna pregunta, no dudes en consultarnos.