This project demonstrates the installation, configuration and deployment of a Java web application using Apache Tomcat on a Linux server.
It simulates a real-world application server environment with proper service configuration, deployment structure and basic security practices.
Client → Apache Tomcat (Java Application Server) → Web Application (WAR)
- Installation and configuration of Apache Tomcat on Linux
- Deployment of a Java web application (.war)
- Configuration of systemd service for Tomcat
- Directory structure and permissions management
- Basic hardening and service exposure
- 📘 Preparación inicial de AlmaLinux
- ☕ Instalación de Java 21
- 👤 Creación del usuario tomcat y estructura
- 🚀 Instalación de Apache Tomcat 11
- 🛠️ Habilitación de Manager y Host-Manager
- 🌱 Despliegue de aplicación Spring Boot en Tomcat
- 🔗 Compartición de archivos Linux ↔ Windows
- Install Java (OpenJDK)
- Download and extract Apache Tomcat
- Configure environment variables (JAVA_HOME)
- Configure Tomcat users and roles
- Deploy WAR file
- Configure systemd service
- Start and enable Tomcat service
The application is deployed as a .war file inside the Tomcat webapps directory.
Example:
/opt/tomcat/webapps/myapp.war
Tomcat automatically extracts and deploys the application.
- Restricted access to Tomcat manager
- Use of dedicated service user
- Controlled permissions on Tomcat directories
- Firewall rules applied to expose only required ports
- Accessed application via browser: http://:8080
- Verified Tomcat service status
- Checked application logs inside /logs directory
Tomcat logs are located in:
/opt/tomcat/logs/
Useful files:
- catalina.out
- localhost.log
Tomcat is configured as a systemd service:
systemctl start tomcat systemctl enable tomcat systemctl status tomcat
This architecture can be mapped to Azure using:
- Azure VM (Linux)
- Azure App Service (Java / Tomcat)
- Azure Application Gateway (reverse proxy)
- Linux system administration
- Java application server management (Tomcat)
- Service configuration with systemd
- Web application deployment (WAR)
- Network and service exposure
- HTTPS configuration (SSL/TLS)
- Reverse proxy with NGINX in front of Tomcat
- Deployment automation with Ansible
- CI/CD pipeline for WAR deployment