Contenido verificado asociado a este RA
Fundamentos y Arquitectura del Servidor de Aplicaciones Web
Esta unidad describe los componentes esenciales y el funcionamiento interno de un servidor de aplicaciones, diferenciando claramente entre contenedores web y servidores de aplicaciones Java EE completos, e identifica los archivos de configuración y bibliotecas compartidas fundamentales para su operación.
Configuración de Conectores y Componentes Web
Esta unidad aborda la configuración del servidor de aplicaciones para interactuar eficientemente con un servidor web frontal y la gestión de los componentes web internos, como hosts virtuales y contextos de aplicación.
Mecanismos de Seguridad en Servidores de Aplicaciones
Esta unidad detalla cómo configurar y activar los mecanismos de seguridad inherentes a los servidores de aplicaciones para proteger las aplicaciones y los datos, incluyendo autenticación, autorización y protección de recursos.
Despliegue y Ajustes de Aplicaciones Web
Esta unidad cubre el proceso de despliegue de aplicaciones web en el servidor de aplicaciones, incluyendo los diferentes formatos de empaquetado y los ajustes de configuración necesarios para su correcto funcionamiento.
Pruebas de Funcionamiento, Rendimiento y Documentación
Esta unidad se centra en la realización de pruebas exhaustivas de funcionamiento y rendimiento de la aplicación desplegada, así como en la elaboración de documentación esencial para la administración y el despliegue del servidor de aplicaciones.
Conceptos clave
Servidor de Aplicaciones (AS)Contenedor Web / Servlet ContainerContenedor EJBServlet y JSPJNDIPool de Conexiones JDBCJTA y JMSArchivos de Configuración del ServidorBibliotecas Compartidas (lib/) y JAR HellWAR/EAR y Directorio de DespliegueConector AJPProxy Inversomod_proxy_ajpmod_proxy_httpNginx proxy_passHost VirtualContexto de AplicaciónPath Contexto
Errores que conviene evitar
- Modificar los archivos de configuración de la aplicación directamente en el directorio de despliegue del servidor (dentro del WAR/EAR ya expandido). Causa: los cambios se sobrescriben en cada redeploy porque el servidor reemplaza el contenido con el paquete original. Corrección: realizar los cambios en el WAR/EAR original antes de desplegarlo, o en los archivos de configuración globales del servidor si el cambio afecta a todas las aplicaciones.
- Colocar bibliotecas duplicadas en el directorio 'lib' del servidor y también dentro del WAR/EAR de la aplicación. Causa: conflictos de versiones ('JAR Hell') o uso innecesario de recursos y memoria. Corrección: identificar si la biblioteca debe ser compartida por todas las aplicaciones (colocarla solo en 'lib' del servidor) o es específica de una aplicación (colocarla solo en 'WEB-INF/lib' del WAR), evitando duplicidades.
- Confundir un contenedor de servlets (como Tomcat) con un servidor de aplicaciones Java EE completo, asumiendo que dispone de EJB, JTA o JMS nativos. Causa: uso indistinto del término 'servidor de aplicaciones' en la literatura técnica. Corrección: verificar en la documentación del producto qué especificación Java EE/Jakarta EE implementa realmente antes de diseñar la arquitectura de la aplicación.
- No configurar correctamente los `ProxyPassReverse` o `proxy_redirect` en el servidor web. Causa: Las redirecciones internas de la aplicación pueden apuntar a la URL interna del AS en lugar de la URL pública. Corrección: Asegurarse de que las cabeceras de ubicación y los enlaces generados por la aplicación se reescriban correctamente.
- Usar `reloadable="true"` en entornos de producción. Causa: Consume recursos de CPU y memoria innecesariamente al escanear cambios, afectando el rendimiento. Corrección: Establecer `reloadable="false"` en producción y gestionar los redeploys manualmente o mediante scripts.
- No configurar HTTPS para la autenticación. Causa: Credenciales expuestas en la red. Corrección: Habilitar un conector SSL/TLS y configurar `transport-guarantee` a `CONFIDENTIAL` en `web.xml` para las URL protegidas.
- Dejar las credenciales por defecto de la consola de administración. Causa: Acceso no autorizado al servidor. Corrección: Cambiar las contraseñas por defecto y usar contraseñas robustas, además de restringir el acceso por IP si es posible.
- No restringir los permisos del usuario del sistema operativo que ejecuta el AS. Causa: Un compromiso del AS podría escalar a todo el sistema. Corrección: Crear un usuario dedicado con los mínimos permisos necesarios para ejecutar el AS.