Programación

1º DAM/DAW - Curso 2023-2024

User Tools

Site Tools


apuntes:tomcat

El servidor de aplicaciones. Apache Tomcat

Instalación

El servidor de aplicaciones Apache Tomcat no dispone de instalador por lo que la manera habitual de instalarlo es descargar la versión que queramos (actualmente la última versión es la 9) y descomprimirlo en la carpeta que queramos.

santi@zenbook:$ tar xvzf apache-tomcat-9.0.1.tar.gz
x apache-tomcat-9.0.1/conf/
x apache-tomcat-9.0.1/conf/catalina.policy
x apache-tomcat-9.0.1/conf/catalina.properties
x apache-tomcat-9.0.1/conf/context.xml
x apache-tomcat-9.0.1/conf/jaspic-providers.xml
x apache-tomcat-9.0.1/conf/jaspic-providers.xsd
x apache-tomcat-9.0.1/conf/logging.properties
x apache-tomcat-9.0.1/conf/server.xml
x apache-tomcat-9.0.1/conf/tomcat-users.xml
x apache-tomcat-9.0.1/conf/tomcat-users.xsd
x apache-tomcat-9.0.1/conf/web.xml
x apache-tomcat-9.0.1/bin/
. . .
. . .

Arranque y parada

Para iniciarlo, dispone de un script startup.sh que lo lanzará en segundo plano:

santi@zenbook:$ ./startup.sh
Using CATALINA_BASE:   /Users/Santi/apache-tomcat-7.0.67
Using CATALINA_HOME:   /Users/Santi/apache-tomcat-7.0.67
Using CATALINA_TMPDIR: /Users/Santi/apache-tomcat-7.0.67/temp
Using JRE_HOME:        /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
Using CLASSPATH:       /Users/Santi/apache-tomcat-7.0.67/bin/bootstrap.jar:/Users/Santi/apache-tomcat-7.0.67/bin/tomcat-juli.jar
Tomcat started.

Y también de un script shutdown.sh que lo detiene:

santi@zenbook:$ ./shutdown.sh
Using CATALINA_BASE:   /Users/Santi/apache-tomcat-7.0.67
Using CATALINA_HOME:   /Users/Santi/apache-tomcat-7.0.67
Using CATALINA_TMPDIR: /Users/Santi/apache-tomcat-7.0.67/temp
Using JRE_HOME:        /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
Using CLASSPATH:       /Users/Santi/apache-tomcat-7.0.67/bin/bootstrap.jar:/Users/Santi/apache-tomcat-7.0.67/bin/tomcat-juli.jar

Instalación en Debian utilizando apt

Si trabajamos con Debian existe la posibilidad de instalar Tomcat utilizando la herramienta apt. En el ejemplo siguiente instalamos el servidor de aplicaciones y todas herramientas y documentación (vienen como paquetes a parte en Debian):

santi@zenbook:$ sudo apt-get install tomcat8 tomcat8-*

En este caso, si queremos iniciar/detener/reiniciar el servidor, puesto que éste se encontrará ahora instalado como un servicio en nuestro sistema Linux tendremos que hacerlo como habitualmente se hace:

santi@zenbook:$ sudo service tomcat8 start
santi@zenbook:$ sudo service tomcat8 restart
santi@zenbook:$ sudo service tomcat8 stop

También tenemos que tener en cuenta que, en este caso, todos los ficheros de configuración de Apache Tomcat se encuentran en /etc/tomcat8.

Configuración básica

En cualquier caso, al tratarse de un servidor de aplicaciones, lo habitual es que escuche en el puerto 8080, aunque hay que tener en cuenta que se puede cambiar en el caso de que en el equipo donde se encuentra instalado no haya un servidor web y además queramos que nuestra aplicación web quede expuesta al exterior. Nos interesará, por tanto, modificar el puerto al 80 para mayor comodidad a la hora de acceder a nuestra aplicación desde el navegador.

Para cambiar el puerto donde Apache Tomcat escuchará tenemos que editar el fichero conf/server.xml y cambiar el número del conector del protocolo HTTP:

. . .
<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
. . .

Independientemente del puerto que hayamos configurado, si accedemos a la página principal del servidor de aplicaciones nos encontraremos la portada:

Figure 2: Home Apache Tomcat

Desde donde podemos acceder a diferentes secciones donde podemos monitorizar/configurar algunos aspectos del servidor

Figure 3: Estado del servidor
Figure 4: Listado de aplicaciones web desplegadas
Figure 5: Listado de hosts virtuales configurados

Pero antes de poder acceder a las diferentes secciones del servidor desde el navegador hay que tener en cuenta que, por seguridad, dicho acceso se encuentra restringido y tendremos que registrar usuarios en conf/tomcat-users.xml con nombre de usuario, contraseña y los roles con los que accederan.

Podemos crear un usuario para cada rol o bien un usuario que tenga varios de ellos (incluso todos). Cada rol definido por Tomcat da acceso a una de las partes del servidor:

  • manager-status: Da acceso a la sección donde monitorizar el estado de Tomcat
  • manager-gui: Da acceso al listado de aplicaciones y a poder desplegarlas desde la web
  • admin-gui: Da acceso a la parte de administración de hosts virtuales

La forma en como podemos editar el fichero y crear nuevos usuarios puede verse en el siguiente fragmento del fichero configuración extraido de una instalación limpia de Tomcat y modificado con un usuario tomcat y contraseña tomcat con todos los roles.

conf/tomcat-users.xml
<tomcat-users>
<!--
  NOTE:  By default, no user is included in the "manager-gui" role required
  to operate the "/manager/html" web application.  If you wish to use this app,
  you must define such a user - the username and password are arbitrary.
-->
<!--
  NOTE:  The sample user and role entries below are wrapped in a comment
  and thus are ignored when reading this file. Do not forget to remove
  <!.. ..> that surrounds them.
-->
 
  <role rolename="manager-gui"/>
  <user username="tomcat" password="tomcat" roles="manager-gui, manager-script"/>
 
</tomcat-users>

© 2023 Santiago Faci

apuntes/tomcat.txt · Last modified: 2023/09/12 11:03 by Santiago Faci