Szkolenie Apache Tomcat
Poziom
ŚredniozaawansowanyCzas
16h / 2 dniTermin
IndywidualnieCena
IndywidualnieSzkolenie Apache Tomcat
Praktyczne szkolenie z administracji i utrzymania serwera Apache Tomcat. Uczestnicy konfigurują środowisko Tomcat, wdrażają aplikacje Java i Jakarta EE Web, zarządzają zasobami JNDI i połączeniami JDBC, zabezpieczają interfejsy administracyjne oraz konfigurują HTTPS, logowanie, monitoring i parametry wydajnościowe.
Dla kogo jest to szkolenie?
Administratorów systemów i inżynierów DevOps potrafiących pracować w terminalu Linux, zarządzać usługami systemowymi oraz analizować logi
Programistów Java znających strukturę aplikacji webowej, format WAR, podstawy protokołu HTTP oraz narzędzia Maven lub Gradle
Inżynierów IT odpowiedzialnych za wdrażanie aplikacji, posiadających podstawową wiedzę o TCP/IP, DNS, TLS, reverse proxy i bazach danych
Specjalistów utrzymania potrafiących odczytywać pliki XML, wykonywać podstawowe operacje na procesach JVM oraz korzystać z poleceń diagnostycznych systemu operacyjnego
Czego nauczysz się na szkoleniu?
- Zainstalujesz Apache Tomcat, rozdzielisz katalogi CATALINA_HOME i CATALINA_BASE oraz skonfigurujesz instancję jako usługę systemową
- Wdrożysz, zaktualizujesz, zatrzymasz i wycofasz aplikację WAR za pomocą katalogu webapps, Manager App oraz interfejsu tekstowego Managera
- Skonfigurujesz zasób JNDI DataSource, pulę połączeń JDBC i bezpieczne przekazywanie parametrów dostępu do bazy danych
- Przygotujesz konfigurację HTTPS, Realm, ról administracyjnych, nagłówków bezpieczeństwa, logów i podstawowego monitoringu JVM
- Zidentyfikujesz wąskie gardło na podstawie logów, zrzutów wątków i wyników testu obciążeniowego oraz skonfigurujesz reverse proxy i równoważenie ruchu
Program szkolenia Apache Tomcat
Dzień 1:
Wprowadzenie do Apache Tomcat
- Specyfikacje webowe Jakarta EE: Jakarta Servlet, Jakarta Pages, Expression Language, WebSocket i Jakarta Authentication
- Rola Servletów i stron JSP: cykl żądania HTTP, kontener webowy, kompilacja JSP oraz kontekst aplikacji
- Architektura Apache Tomcat: Server, Service, Connector, Engine, Host, Context, Catalina, Coyote i Jasper
- Linie Apache Tomcat 11.0, 10.1 i 9.0: obsługiwane specyfikacje, wymagania Java oraz przestrzenie nazw jakarta.* i javax.*
- Instalacja i konfiguracja bazowa: CATALINA_HOME, CATALINA_BASE, użytkownik systemowy, porty, zmienne JVM i usługa systemowa
Struktura katalogów i plików konfiguracyjnych
- Katalogi bin, conf, lib, logs, temp, webapps i work: przeznaczenie, uprawnienia oraz separacja instancji
- Pliki server.xml, context.xml, web.xml, logging.properties, catalina.properties i setenv.sh: zakres oraz kolejność konfiguracji
- Realms, użytkownicy i role: tomcat-users.xml, role Manager App, zewnętrzne źródła tożsamości i zasada najmniejszych uprawnień
Cykl życia aplikacji webowych
- Formaty aplikacji i modele wdrożenia: archiwum WAR, katalog rozwinięty, deskryptor Context i wdrożenie poza katalogiem webapps
- Manager App i Host Manager: zakres funkcji, role dostępu, ograniczenie ekspozycji sieciowej oraz bezpieczna administracja
- Interfejs tekstowy Managera i automatyzacja wdrożeń: polecenia HTTP, skrypty powtarzalne, status operacji i kontrola błędów
- Wdrożenie dynamiczne i restart instancji: parametry autoDeploy, deployOnStartup, przeładowanie kontekstu, zatrzymanie aplikacji i kontrolowany rollback
Dzień 2:
Konfiguracja zasobów i połączeń do bazy danych
- Zasoby JNDI w context.xml: zakres aplikacji, odwołania Resource, nazwy logiczne i separacja konfiguracji od kodu
- JNDI DataSource: sterownik JDBC, adres połączenia, parametry uwierzytelniania, test połączenia i diagnostyka błędów
- Bezpieczeństwo połączeń JDBC: szyfrowanie transportu, magazyny poświadczeń, uprawnienia użytkownika bazy i ograniczenie danych w logach
- Pule połączeń JDBC: Tomcat JDBC Pool i Apache Commons DBCP 2, rozmiar puli, walidacja, timeouty, wykrywanie wycieków i statystyki
Zabezpieczenia Apache Tomcat
- HTTPS i TLS: Connector, magazyn kluczy, certyfikat, protokoły, zestawy szyfrów, HTTP/2 i walidacja konfiguracji
- Ochrona Manager App i Host Manager: ograniczenia adresów IP, odrębne role, silne poświadczenia, blokada dostępu publicznego i rejestracja operacji
- Realms i role aplikacyjne: MemoryRealm, JDBCRealm, DataSourceRealm, JNDIRealm, mapowanie ról i kontrola dostępu
- Nagłówki i filtry bezpieczeństwa: Security Headers Filter, CORS Filter, Remote Address Valve, limity żądań i ograniczenie ujawniania informacji o serwerze
Diagnostyka i strojenie
- Connectory i pule wątków: NIO, NIO2, Executor, maxThreads, maxConnections, kolejka żądań i zależności od profilu ruchu
- Pamięć JVM i Garbage Collection: heap, metaspace, dobór kolektora, logi GC, presja pamięci i podstawy analizy zrzutu sterty
- Połączenia HTTP: keep-alive, timeouty, limity nagłówków, kompresja, maksymalny rozmiar żądania i ochrona przed wyczerpaniem zasobów
- Diagnostyka wąskich gardeł: zrzuty wątków, blokady, długie żądania, wyczerpanie puli JDBC, nasycenie CPU i zależności zewnętrzne
- Logi serwera i dostępu: JULI, catalina.out, logi hosta, AccessLogValve, rotacja, retencja, identyfikator korelacyjny i analiza zdarzeń
- Testy obciążeniowe Apache JMeter: scenariusz, liczba użytkowników, rozgrzewka, przepustowość, percentyle czasu odpowiedzi, błędy i kryteria testu
Integracja z serwerem HTTP
- Równoważenie ruchu: mod_proxy_balancer, mod_jk, algorytmy dystrybucji, kontrole zdrowia i wyłączenie węzła
- Reverse proxy: Apache HTTP Server lub NGINX, przekazywanie nagłówków, adres klienta, terminacja TLS i konfiguracja Connectora
- Integracja klastrowa: mod_cluster jako wariant środowiska, dynamiczna rejestracja węzłów, kontrola stanu i ograniczenia operacyjne
- Sesje klastrowe: DeltaManager, BackupManager, sticky sessions, replikacja, aplikacja distributable, failover i koszt synchronizacji stanu