Apache Tomcat comúnmente llamado como Tomcat es un servidor web de código abierto y un contenedor de Servlet desarrollado por Apache Software Foundation. Está escrito en Java y publicado bajo la licencia Apache 2.0. Esta es una aplicación multiplataforma. Tomcat en realidad se compone de una serie de componentes, incluido un motor Tomcat JSP y una variedad de conectores diferentes, pero su componente central se llama Catalina. Catalina proporciona la implementación real de Tomcat de la especificación del servlet.
En este artículo, le proporcionaré pautas para instalar, configurar y crear varias instancias de Tomcat 8 en Ubuntu 16.04. Veamos los pasos de instalación.
Dado que Tomcat está escrito en Java, necesitamos que Java esté instalado en nuestro servidor antes de la instalación.
Instalar Java
Tomcat 8 requiere la instalación de Java 7 o versiones posteriores en el servidor. Actualicé paquetes en mi servidor Ubuntu e instalé los paquetes JDK usando los siguientes comandos:
root@ubuntu:~# apt-get update
root@ubuntu:~# apt-get install default-jdk
Setting up default-jdk-headless (2:1.8-56ubuntu2) ...
Setting up openjdk-8-jdk:amd64 (8u91-b14-0ubuntu4~16.04.1) ...
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/appletviewer to provide /usr/bin/appletviewer (appletviewer) in auto mode
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/jconsole to provide /usr/bin/jconsole (jconsole) in auto mode
Setting up default-jdk (2:1.8-56ubuntu2) ...
Setting up gconf-service-backend (3.2.6-3ubuntu6) ...
Setting up gconf2 (3.2.6-3ubuntu6) ...
Setting up libgnomevfs2-common (1:2.24.4-6.1ubuntu1) ...
Setting up libgnomevfs2-0:amd64 (1:2.24.4-6.1ubuntu1) ...
Setting up libgnome2-common (2.32.1-5ubuntu1) ...
Setting up libgnome-2-0:amd64 (2.32.1-5ubuntu1) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for ca-certificates (20160104ubuntu1) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
done.
Compruebe y confirme la versión de Java
Después del proceso de instalación, simplemente verifique la versión de Java instalada en su servidor.
root@ubuntu:~# java -version
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-0ubuntu4~16.04.1-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Descargar/Instalar Tomcat
Podemos descargar la última versión de Tomcat aquí. Descargue y extraiga esto en la carpeta /opt/apache-tomcat8.
root@ubuntu:/opt# wget http://a.mbbsindia.com/tomcat/tomcat-8/v8.0.35/bin/apache-tomcat-8.0.35.zip
--2016-05-23 03:02:48-- http://a.mbbsindia.com/tomcat/tomcat-8/v8.0.35/bin/apache-tomcat-8.0.35.zip
Resolving a.mbbsindia.com (a.mbbsindia.com)... 103.27.233.42
Connecting to a.mbbsindia.com (a.mbbsindia.com)|103.27.233.42|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9842037 (9.4M) [application/zip]
Saving to: ‘apache-tomcat-8.0.35.zip’
apache-tomcat-8.0.35.zip 100%[===================================================================>] 9.39M 4.46MB/s in 2.1s
2016-05-23 03:02:51 (4.46 MB/s) - ‘apache-tomcat-8.0.35.zip’ saved [9842037/9842037]
Creando un usuario/grupo de tomcat
Siempre se recomienda ejecutar una aplicación como usuario en lugar de usuario root. Por lo tanto, creé un usuario llamado tomcat para ejecutar esta aplicación.
root@ubuntu:/opt# groupadd tomcat
root@ubuntu:/opt# useradd -g tomcat -s /bin/bash -d /opt/apache-tomcat8 tomcat
Ahora haga que todos los scripts de la carpeta bin de Tomcat sean ejecutables para el usuario.
root@ubuntu:/opt/apache-tomcat8/bin# chmod 700 *.sh
root@ubuntu:/opt# chown -R tomcat.tomcat apache-tomcat8/
Iniciar la aplicación Tomcat
Ahora cambie al usuario Tomcat y ejecute el script startup.sh dentro de la carpeta binaria de Tomcat, a saber, /opt/apache-tomcat8/bin/ para ejecutar esta aplicación.
tomcat@ubuntu:~/bin$ sh startup.sh
Using CATALINA_BASE: /opt/apache-tomcat8
Using CATALINA_HOME: /opt/apache-tomcat8
Using CATALINA_TMPDIR: /opt/apache-tomcat8/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/apache-tomcat8/bin/bootstrap.jar:/opt/apache-tomcat8/bin/tomcat-juli.jar
Tomcat started.
Ahora podemos acceder a esta URL http://serverip:8080 en el navegador para confirmar que Tomcat funciona.
Incluso podemos confirmar el estado usando este comando de CLI como se muestra a continuación:
root@ubuntu:/opt# lsof -i :8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 22722 tomcat 53u IPv6 100669 0t0 TCP *:http-alt (LISTEN)
PD:para cerrar la aplicación, puede usar el script shutdown.sh dentro de los binarios de Tomcat.
root@ubuntu:/opt/apache-tomcat8# sh bin/shutdown.sh
Using CATALINA_BASE: /opt/apache-tomcat8
Using CATALINA_HOME: /opt/apache-tomcat8
Using CATALINA_TMPDIR: /opt/apache-tomcat8/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/apache-tomcat8/bin/bootstrap.jar:/opt/apache-tomcat8/bin/tomcat-juli.jar
May 24, 2016 3:32:35 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Could not contact localhost:8005. Tomcat may not be running.
May 24, 2016 3:32:36 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop:
Administrador de aplicaciones web de Tomcat
En un entorno de producción, es muy útil tener la capacidad de implementar una nueva aplicación web o cancelar la implementación de una existente, sin tener que apagar/reiniciar todo el servidor. Además, incluso puede volver a cargar una aplicación existente, incluso sin declararla como recargable en el archivo de configuración del servidor Tomcat.
Esta consola web de administración admite las siguientes funciones:
- Implemente una nueva aplicación web desde el archivo WAR cargado o en una ruta de contexto especificada desde el servidor f/s.
- Lista de las aplicaciones web implementadas actualmente y las sesiones que están actualmente activas
- Vuelva a cargar una aplicación web existente para reflejar los cambios en el contenido de /WEB-INF/classes o /WEB-INF/lib.
- Obtenga la información del servidor sobre el sistema operativo y la JVM
- Inicie y detenga una aplicación web existente, --deteniendo la aplicación existente y dejándola no disponible. Pero no lo desinstales.
- Retirar la implementación de una aplicación web implementada y eliminar su directorio base de documentos
Podemos crear los usuarios para administrar la consola web de administración de Tomcat. Puede editar el archivo de configuración de usuario de Tomcat, a saber, conf/tomcat-users.xml para crear los usuarios administradores para gestionar el Panel.
He agregado estas líneas al archivo de configuración de usuario de Tomcat para crear dos usuarios, a saber, administrador y administrador, con las contraseñas que se enumeran.
<user username="manager" password="tomcat123" roles="manager-gui" />
<user username="admin" password="tomcat123" roles="manager-gui,admin-gui"/>
Podemos acceder al administrador de aplicaciones web de Tomcat mediante la URL>>http://SERVERIP:8080/manager/ con los usuarios creados.
Habilitar la compatibilidad con SSL/TLS en Tomcat
Tomcat utiliza un archivo protegido con contraseña "almacén de claves" para guardar las transacciones SSL. Necesitamos crear un archivo de almacén de claves para almacenar la clave privada del servidor y el certificado autofirmado ejecutando el siguiente comando:
root@ubuntu:/usr/local# keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/keystore
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: Saheetha Shameer
What is the name of your organizational unit?
[Unknown]: VIP
What is the name of your organization?
[Unknown]: VIP
What is the name of your City or Locality?
[Unknown]: Kochi
What is the name of your State or Province?
[Unknown]: Kerala
What is the two-letter country code for this unit?
[Unknown]: IN
Is CN=Saheetha Shameer, OU=VIP, O=VIP, L=Kochi, ST=Kerala, C=IN correct?
[no]: yes
Enter key password for <tomcat>
(RETURN if same as keystore password):
Options:
-genkeypair : Generate key pair
-keyalg : Key algorithm
-keystore : Keystore file path
Después de ingresar los detalles para generar la certificación, puede editar la configuración del servidor Tomcat para habilitar la compatibilidad con SSL/TLS dirigiendo al archivo de almacenamiento de claves.
Necesitamos agregar esta sección al archivo de configuración del servidor Tomcat, a saber, conf/server.xml
<Connector port="8443" protocol="HTTP/1.1"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/usr/local/keystore"
keystorePass="tomcat123"/>
Reinicie la aplicación Tomcat una vez que confirme el contenido del almacén de claves.
tomcat@ubuntu:~$ keytool -list -keystore /usr/local/keystore
Enter keystore password:
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
tomcat, May 23, 2016, PrivateKeyEntry,
Certificate fingerprint (SHA1): A3:99:A8:DD:F1:11:4F:69:37:95:11:66:41:59:A5:05:68:23:3E:B2
Ahora puede acceder a la aplicación Tomcat en el puerto 8443 en la URL https://SERVER IP:8443 para confirmar que funciona.
Creación de varias instancias de Tomcat
Para crear varias instancias de Tomcat, puede descargar y extraer la aplicación Tomcat en una carpeta diferente. Extraje el contenido a una carpeta diferente, a saber, /opt/apache-tomcat8-2. Después de extraer los archivos, debemos realizar los cambios adecuados en el archivo de configuración del servidor Tomcat para modificar los puertos del conector y otros puertos importantes para la aplicación para evitar conflictos con la aplicación existente.
Estos son los siguientes cambios aplicados al archivo de configuración del servidor Tomcat, a saber, conf/server.xml.
<Server port="8005" shutdown="SHUTDOWN">
to
<Server port="8006" shutdown="SHUTDOWN">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- A "Connector" using the shared thread pool-->
<!--
to
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- A "Connector" using the shared thread pool-->
<!--
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
Después de aplicar estos cambios, reinicie nuestra nueva aplicación Tomcat en /opt/apache-tomcat8-2
root@ubuntu:/opt# chown -R tomcat.tomcat /opt/apache-tomcat8-2
root@ubuntu:/opt#cd apache-tomcat8-2
Hacer que el script sea ejecutable para el usuario.
root@ubuntu:/opt/apache-tomcat8-2# chmod 700 bin/*.sh
Cambie al usuario Tomcat e inicie la aplicación.
tomcat@ubuntu:/opt/apache-tomcat8-2/bin$ sh startup.sh
Using CATALINA_BASE: /opt/apache-tomcat8-2
Using CATALINA_HOME: /opt/apache-tomcat8-2
Using CATALINA_TMPDIR: /opt/apache-tomcat8-2/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/apache-tomcat8-2/bin/bootstrap.jar:/opt/apache-tomcat8-2/bin/tomcat-juli.jar
Tomcat started.
Verifique la segunda instancia de Tomcat en el puerto 8081 en la URL http://SERVERIP:8081
¡Eso es todo! ha terminado con las cosas básicas en las instalaciones de Tomcat. Espero que hayas disfrutado leyendo este artículo. Recomendaría sus valiosas sugerencias y comentarios al respecto. Gracias por leer esto :)
¡Que tengas un buen día!