Apache Tomcat es un servidor web de código abierto y un contenedor de servlets que se utiliza principalmente para servir aplicaciones basadas en Java.
En esta guía, aprenderá cómo instalar Apache Tomcat 10 en Ubuntu 20.04 y asegurar la configuración con Nginx y Let's Encrypt SSL.
Requisitos
- Un servidor con sistema operativo Ubuntu 20.04
- Un usuario con privilegios sudo.
Configuración inicial
Comience por actualizar los paquetes del servidor a la última versión disponible.
sudo apt update sudo apt dist-upgrade -y
Crear nuevo usuario para Tomcat
Sería mejor si Tomcat se ejecuta como su propio usuario sin privilegios. Ejecute el siguiente comando para crear un nuevo usuario con los privilegios necesarios para Tomcat. Este usuario no podrá iniciar sesión en SSH.
sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat
Instalar Java
Instale el JDK predeterminado usando el siguiente comando.
sudo apt install default-jdk
Una vez completada la instalación, verifique la versión usando el siguiente comando.
java -version
Su salida debe ser similar a la siguiente.
openjdk version "11.0.14.1" 2022-02-08 OpenJDK Runtime Environment (build 11.0.14.1+1-Ubuntu-0ubuntu1.20.04) OpenJDK 64-Bit Server VM (build 11.0.14.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
Instalar Apache Tomcat
Descargue la última versión de Tomcat desde su página oficial de descargas. Elija el tar.gz
debajo de la sección central.
Descarga el archivo usando wget.
cd ~/ wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.20/bin/apache-tomcat-10.0.20.tar.gz
Extrae el contenido a /opt/tomcat
directorio.
sudo tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1
Configure los permisos correctos para los archivos Tomcat.
sudo chown -R tomcat:tomcat /opt/tomcat/ sudo chmod -R u+x /opt/tomcat/bin
Configurar usuarios administradores
Ahora necesitamos configurar usuarios que puedan acceder al Administrador de host y el Gerente páginas en Tomcat.
Agregue los usuarios con contraseñas en /opt/tomcat/conf/tomcat-users.xml
sudo nano /opt/tomcat/conf/tomcat-users.xml
Agregue las siguientes líneas antes de la etiqueta final.
<role rolename="manager-gui" /> <user username="manager" password="secure_password" roles="manager-gui" /> <role rolename="admin-gui" /> <user username="admin" password="secure_password" roles="manager-gui,admin-gui" />
Ahora tenemos 2 usuarios que pueden acceder a las páginas Administrador y Administrador de host.
Configurar Tomcat como servicio
Aquí configuraremos un servicio systemd para administrar Tomcat para iniciar, detener y reiniciar automáticamente.
Tenga en cuenta la ubicación de Java.
sudo update-java-alternatives -l
Output java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
Cree un archivo systemd.
sudo nano /etc/systemd/system/tomcat.service
Agregue los siguientes contenidos al archivo.
[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 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target
Reemplazar JAVA_HOME variable con la que anotaste antes.
Vuelva a cargar el demonio systemd para que los cambios surtan efecto.
sudo systemctl daemon-reload
Inicie Tomcat.
sudo systemctl start tomcat
Permita que Tomcat se inicie en el arranque del sistema.
sudo systemctl enable tomcat
Comprobar el estado de Tomcat.
sudo systemctl status tomcat
Output ● tomcat.service - Tomcat Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled) Active: active (running) since Wed 2022-04-20 08:57:23 UTC; 6s ago Process: 5155 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 5162 (java) Tasks: 29 (limit: 1151) Memory: 136.4M CGroup: /system.slice/tomcat.service
Instalar Nginx
Instale Nginx usando el siguiente comando.
sudo apt install nginx
Eliminar configuraciones predeterminadas
sudo rm /etc/nginx/sites-available/default sudo rm /etc/nginx/sites-enabled/default
Configurar proxy Nginx para Tomcat
Crear nueva configuración de Nginx
sudo nano /etc/nginx/sites-available/yourdomainname.conf
Pegue lo siguiente
server { listen [::]:80; listen 80; server_name yourdomainname.com www.yourdomainname.com; location / { proxy_pass http://localhost:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Guarde y salga del archivo.
Habilite su configuración creando un enlace simbólico.
sudo ln -s /etc/nginx/sites-available/yourdomainname.conf /etc/nginx/sites-enabled/yourdomainname.conf
Instala Let's Encrypt SSL con Certbot
Instale el paquete Certbot.
sudo apt install python3-certbot-nginx
Instale el certificado SSL usando el siguiente comando.
sudo certbot --nginx --redirect --no-eff-email --agree-tos -m [email protected] -d yourdomainname.com -d www.yourdomainname.com
Si su dominio apunta al servidor, se instalará el certificado SSL gratuito y la redirección de HTTP a HTTPS se configurará automáticamente y Nginx se reiniciará solo para que los cambios surtan efecto.
Si desea reiniciar, puede verificar su configuración de Nginx y reiniciarlo.
sudo nginx -t sudo service nginx restart
Prepárese para un puesto de trabajo como profesional de tecnología de la información con sistema operativo Linux
Verificar la instalación de Tomcat
Ahora comprueba tu dominio en tu navegador.
Haz clic en Aplicación de administrador. , se le pedirá que ingrese el nombre de usuario y la contraseña. Usa el que hemos configurado en la sección de usuarios de Tomcat.
También puede echar un vistazo al Administrador de host página.
También puede ver el estado del servidor.
Conclusión
Ahora ha aprendido cómo instalar Apache Tomcat en Ubuntu 20.04 y protegerlo con Nginx y Let's Encrypt SSL.
Gracias por tu tiempo. Si tiene algún problema o comentario, deje un comentario a continuación.