O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Tomcat. Przewodnik encyklopedyczny. Wydanie II

Book Description

W książce „Tomcat. Przewodnik encyklopedyczny” znajdziesz szczegółowe wyjaśnienia, jak korzystać z tego serwera. Niezbędne informacje dotyczące serwera Tomcat znajdą tu nie tylko programiści, ale także administratorzy, webmasterzy i wszyscy, którzy chcą się dowiedzieć czegoś o tym kontenerze serwletów.

Table of Contents

  1. Tomcat: Przewodnik encyklopedyczny
  2. Dedykacja
  3. Przedmowa
    1. O czym jest książka?
    2. Dlaczego całą książkę poświęcono serwerowi Tomcat?
    3. Dla kogo jest ta książka?
    4. Konwencje zastosowane w książce
    5. Zastosowanie przykładowych kodów
    6. Podziękowania
    7. Podziękowania Jasona Brittaina
    8. Podziękowania Iana Darwina
  4. 1. Tomcat — wprowadzenie
    1. Instalowanie Tomcata
      1. Instalowanie Tomcata w systemie Linux
        1. Instalowanie Tomcata z wieloplatformowej binarnej wersji oprogramowania Apache
        2. Instalowanie Tomcata z linuksowych pakietów RPM dołączonych do książki
        3. Instalowanie Tomcata z linuksowych pakietów RPM pobranych z witryny JPackage.org
      2. Instalowanie serwera Tomcat w systemie Solaris
      3. Instalowanie serwera Tomcat w systemie Windows
      4. Instalowanie Tomcata w systemie Mac OS X
      5. Instalowanie Tomcata w systemie FreeBSD
    2. Uruchamianie, zatrzymywanie i ponowne ładowanie serwera Tomcat
      1. Uruchamianie i zatrzymywanie serwera Tomcat
        1. Zmienne środowiskowe
        2. Uruchamianie i zatrzymywanie Tomcata — ogólny przypadek
        3. Uruchamianie i zatrzymywanie Tomcata w systemie Linux
        4. Uruchamianie i zatrzymywanie Tomcata w systemie Solaris
        5. Uruchamianie i zatrzymywanie Tomcata w systemie Windows
        6. Uruchamianie i zatrzymywanie Tomcata w systemie Mac OS X
        7. Uruchamianie i zatrzymywanie Tomcata w systemie FreeBSD
      2. Typowe błędy
      3. Ponowne uruchamianie Tomcata
        1. Ogólny przypadek
        2. Ponowne uruchamianie Tomcata w systemie Linux
        3. Ponowne uruchamianie Tomcata w systemie Solaris
        4. Ponowne uruchamianie usługi Tomcata w systemie Windows
        5. Ponowne uruchamianie Tomcata w systemie Mac OS X
        6. Ponowne uruchamianie Tomcata w systemie FreeBSD
    3. Automatyczne uruchamianie
      1. Automatyczne uruchamianie Tomcata w systemie Linux
      2. Automatyczne uruchamianie Tomcata w systemie Solaris
      3. Automatyczne uruchamianie Tomcata w systemie Windows
      4. Automatyczne uruchamianie Tomcata w systemie Mac OS X
      5. Automatyczne uruchamianie Tomcata w systemie FreeBSD
    4. Testowanie instalacji serwera Tomcat
    5. Skąd się wziął Tomcat?
  5. 2. Konfigurowanie Tomcata
    1. Coś na temat użycia serwera WWW Apache
    2. Zmiana lokalizacji katalogu aplikacji WWW
    3. Zmiana numeru portu 8080 na inny
      1. Przekazywanie połączeń TCP z portu 80 do portu 8080
      2. Uruchamianie Tomcata z użyciem portu 80 za pośrednictwem narzędzia opakowującego usługę
      3. Typowe błędy
    4. Konfigurowanie wirtualnej maszyny Java
    5. Zmiana kompilatora stron JSP
    6. Zarządzanie obszarami, rolami i użytkownikami
      1. Obszary
        1. UserDatabaseRealm
        2. JDBCRealm
        3. JNDIRealm
        4. JAASRealm
      2. Zabezpieczenia zarządzane przez kontener
        1. Uwierzytelnianie podstawowe
        2. Uwierzytelnianie szyfrowane
        3. Uwierzytelnianie formularza
        4. Uwierzytelnianie z użyciem certyfikatu klienta
      3. Jednokrotne rejestrowanie się
    7. Kontrolowanie sesji
      1. Utrwalanie sesji
        1. StandardManager
        2. PersistentManager
        3. Użycie obiektu FileStore do magazynowania sesji
        4. Zastosowanie obiektu JDBCStore do magazynowania sesji
    8. Uzyskiwanie dostępu do zasobów JNDI i JDBC
      1. Źródła danych JDBC
      2. Inne zasoby JNDI
    9. Automatyczne ponowne ładowanie serwletów
    10. Dostosowywanie katalogów użytkowników
    11. Przykładowe aplikacje serwera Tomcat
    12. Interfejs CGI
    13. Aplikacja WWW administrująca serwerem Tomcat
  6. 3. Wdrażanie w obrębie serwera Tomcat aplikacji WWW z serwletami i stronami JSP
    1. Hosty
      1. Aplikacja Host Manager
    2. Struktura aplikacji WWW
      1. Wdrażanie serwletów i stron JSP
    3. Wdrażanie rozpakowanego katalogu aplikacji WWW
      1. Wdrażanie kontekstu pliku server.xml
      2. Wdrażanie częściowego pliku XML kontekstu
    4. Wdrażanie pliku WAR
      1. Wdrażanie kontekstu pliku server.xml
      2. Wdrażanie częściowego pliku XML kontekstu
    5. Wdrażanie „na gorąco”
    6. Praca z plikami WAR
    7. Aplikacja Manager
    8. Automatyzowanie za pomocą narzędzia Apache Ant
      1. Tworzenie pliku JAR lub WAR
      2. Wdrażanie za pośrednictwem narzędzia Ant
        1. Kopiowanie pliku WAR lub katalogu aplikacji WWW
        2. Uzyskiwanie dostępu do aplikacji Manager
        3. Niezależne narzędzie wdrażające serwera Tomcat
        4. Zadanie scp narzędzia Ant
      3. Typowe błędy
        1. Znaczniki XML w plikach właściwości
        2. FileNotFoundExceptions
    9. Dowiązania symboliczne
  7. 4. Optymalizowanie wydajności serwera Tomcat
    1. Pomiar wydajności serwera WWW
      1. Narzędzia testujące obciążenie
        1. ab — narzędzie serwera Apache mierzące wydajność
        2. siege
        3. Apache Jakarta JMeter
      2. Porównanie wydajności serwerów WWW
        1. Złącza Tomcata i moduły złącza serwera httpd Apache
        2. Konfiguracje sprzętowe i programowe wykorzystane w testach porównawczych
        3. Procedura testu porównawczego
        4. Wyniki testów porównawczych i podsumowanie
        5. Co jeszcze mogliśmy przetestować?
    2. Zewnętrzne dostrajanie
      1. Wydajność wirtualnej maszyny Java
      2. Wydajność systemu operacyjnego
    3. Wewnętrzne dostrajanie
      1. Wyłączenie funkcji sprawdzania adresów DNS
      2. Dostosowywanie liczby wątków
      3. Przyspieszanie stron JSP
        1. Prekompilacja stron JSP przez zażądanie ich
        2. Prekompilacja stron JSP podczas ładowania aplikacji WWW
        3. Prekompilacja stron JSP na etapie procesu budowania za pomocą narzędzia JspC
    4. Planowanie obciążenia
      1. Anegdotyczne planowanie obciążenia
      2. Planowanie obciążenia w przedsiębiorstwie
      3. Planowanie obciążenia serwera Tomcat
    5. Dodatkowe źródła informacji
  8. 5. Integracja z serwerem WWW Apache
    1. Zalety i wady integracji
      1. Uruchamianie niezależnego serwera Tomcat
        1. Łatwiejsza konfiguracja
        2. Nie trzeba się martwić o żaden moduł złącza serwera WWW
        3. Samodzielnie działający serwer Tomcat jest szybszy od serwera httpd Apache, który Tomcatowi przekazuje żądania za pomocą modułu pośredniczącego
        4. Większe możliwości w zakresie poprawy bezpieczeństwa
        5. Łatwość migracji
        6. Łatwość aktualizacji
        7. Serwer Tomcat dysponuje mniejszą ilością oprogramowania wspomagającego
        8. Mniejsza liczba osób słyszała o serwerze WWW Tomcata
        9. Mniejsza liczba funkcji serwera WWW
      2. Uruchamianie Tomcata razem z serwerem httpd Apache
        1. Serwer WWW Tomcata jest szybszy niż serwer httpd Apache
        2. Większa ilość oprogramowania wspomagającego
        3. Krótszy czas uruchamiania i zamykania
        4. Trudniejsze jest skonfigurowanie wszystkiego
        5. Wydłuża się czas udostępniania dynamicznej zawartości przez Tomcat
        6. Pojawia się ryzyko wystąpienia dodatkowych luk w zabezpieczeniach
        7. Aktualizowanie jest bardziej skomplikowane
    2. Instalowanie serwera httpd Apache
    3. Integrowanie serwera Apache z Tomcatem
      1. Rozkładanie obciążenia za pomocą oddzielnych numerów portów
        1. Serwer httpd Apache jest „nieświadomy” zabezpieczeń Tomcata
        2. Dwukrotnie więcej serwerów WWW trzeba dostrajać, utrzymywać i zabezpieczać
        3. Borykanie się z użytkownikami i bardziej szczegółowe rejestrowanie
        4. Więcej problemów wynikających z podwójnego uwierzytelniania
      2. Przekazywanie przez usługę pośredniczącą żądań z serwera httpd Apache do serwera Tomcat
      3. Konfigurowanie serwera httpd Apache
      4. Konfigurowanie serwera Tomcat
      5. Sprawdzanie poprawności działania usługi pośredniczącej
      6. Wady
        1. Serwer httpd Apache wydłuża czas odpowiedzi serwera Tomcat
        2. Dwukrotnie więcej serwerów WWW trzeba dostrajać, utrzymywać i zabezpieczać
        3. Więcej problemów wynikających z podwójnego uwierzytelniania
        4. Dodatkowe informacje
      7. Usługa pośrednicząca w przesyłaniu danych z serwera Tomcat do serwera httpd Apache
      8. Zastosowanie modułu złącza mod_jk
        1. Zastosowanie wersji binarnych
        2. Kompilowanie modułu mod_jk
        3. Uruchamianie zintegrowanych serwerów
        4. Plik workers.properties
      9. Serwer Tomcat obsługujący żądania HTTP za pośrednictwem złącza APR
      10. Instalowanie złącza APR
        1. Zastosowanie wersji binarnych
        2. Kompilowanie i instalowanie biblioteki APR
      11. Budowanie i instalowanie złącza APR
      12. Konfigurowanie Tomcata w celu zastosowania złącza APR
  9. 6. Zabezpieczenia serwera Tomcat
    1. Zabezpieczanie systemu
      1. Fora poświęcone zabezpieczeniom systemów operacyjnych
      2. Konfigurowanie sieci
    2. Wiele modeli zabezpieczeń serwera
    3. Zastosowanie narzędzia SecurityManager
    4. Nadawanie uprawnień do plików
    5. Tworzenie „klatki” narzędzia chroot Tomcata
      1. Konfigurowanie „klatki” narzędzia chroot
      2. Zastosowanie w „klatce” narzędzia chroot konta użytkownika innego niż root
    6. Odfiltrowywanie danych wprowadzonych przez użytkownika ze złymi zamiarami
      1. Luki w zabezpieczeniach
        1. Atak XSS
        2. Wprowadzanie kodu HTML
        3. Wprowadzanie instrukcji SQL
        4. Wprowadzanie poleceń
      2. Filtrowanie żądań HTTP
        1. Instalowanie składnika BadInputValve
        2. Instalowanie składnika BadInputFilter
        3. Dodatkowe zasoby
    7. Zabezpieczanie serwera Tomcat za pomocą protokołu SSL
      1. Generowanie samopodpisanego certyfikatu serwera
      2. Uzyskiwanie i instalowanie komercyjnego certyfikatu
      3. Konfigurowanie złącza SSL dla serwera Tomcat
        1. Konfigurowanie złącza JIO dla protokołu SSL
        2. Konfigurowanie złącza APR dla protokołu SSL
        3. Konfigurowanie złącza NIO dla protokołu SSL
      4. Certyfikaty klientów
  10. 7. Konfiguracja
    1. Plik server.xml
      1. Element Server
      2. Element Service
      3. Element Executor
      4. Element Connector
      5. Element Engine
      6. Element Host
        1. Wirtualny hosting
        2. Element Alias
      7. Element Context
      8. Element Realm
      9. Element GlobalNamingResources
        1. Element Environment
        2. Element Resource
        3. Element ResourceEnvRef
      10. Element WatchedResource
      11. Element Listener
      12. Element Loader
      13. Element Manager
      14. Element Store
      15. Element Resources
      16. Element Valve
        1. Kontrolowanie dzienników operacji dostępu za pomocą elementu AccessLogValve
        2. Elementy RemoteHostValve i RemoteAddrValve
        3. Ograniczanie współbieżności żądań za pomocą elementu SemaphoreValve
      17. Element Transaction
      18. Element Cluster
        1. Element Channel
        2. Element Membership
        3. Element Sender
        4. Element Transport
        5. Element Receiver
        6. Element Interceptor
        7. Element Member
        8. Element Deployer
        9. Element ClusterListener
      19. Migracja ze starszych wersji serwera Tomcat
        1. Migracja z wersji 4.1 do 5.0
        2. Migracja z wersji 5.0 do 5.5
        3. Migracja z wersji 5.5 do 6.0
    2. Plik web.xml
      1. Element web-app
      2. Elementy icon, display-name i description
      3. Element distributable
      4. Element context-param
      5. Elementy filter i filter-mapping
      6. Element listener
      7. Element servlet
      8. Element servlet-mapping
      9. Element session-config
      10. Element mime-mapping
      11. Element welcome-file-list
      12. Element error-page
      13. Elementy jsp-config i taglib
      14. Element resource-env-ref
      15. Element resource-ref
        1. Dodatkowe informacje
      16. Element security-constraint
        1. Dodatkowe informacje
      17. Element login-config
        1. Dodatkowe informacje
      18. Element security-role
      19. Element env-entry
        1. Dodatkowe informacje
      20. Elementy ejb-ref i ejb-local-ref
      21. Element service-ref
      22. Element message-destination-ref
      23. Element message-destination
      24. Element locale-encoding-mapping-list
    3. Plik tomcat-users.xml
    4. Plik catalina.policy
    5. Plik catalina.properties
    6. Plik context.xml
  11. 8. Rozwiązywanie problemów i debugowanie
    1. Analizowanie plików dzienników
    2. Szukanie błędów
    3. Adresy URL i komunikacja HTTP
      1. Żądania HTTP
      2. Kody odpowiedzi i nagłówki
      3. Interakcja z wykorzystaniem protokołu HTTP
    4. Debugowanie za pomocą narzędzia RequestDumperValve
    5. Gdy nie udaje się wyłączyć serwera Tomcat
  12. 9. Tworzenie binariów serwera Tomcat z kodu źródłowego
    1. Instalowanie oprogramowania Apache Ant
    2. Uzyskiwanie kodu źródłowego
      1. Pobieranie kodu źródłowego
      2. Uzyskiwanie kodu źródłowego z repozytorium Subversion organizacji Apache Software Foundation
    3. Pobieranie dodatkowych bibliotek
    4. Budowanie serwera Tomcat
  13. 10. Klaster węzłów z serwerem Tomcat
    1. Pojęcia związane z klastrem
    2. Proces komunikacji związany z żądaniem HTTP
      1. Dystrybucja żądań DNS
      2. Dystrybucja żądań TCP NAT
      3. Równoważenie obciążenia i przełączanie po awarii z wykorzystaniem modułu mod_proxy_balancer
    3. Rozproszone kontenery serwletów Java
      1. Sesje serwletowe
      2. Pokrewieństwo sesji
      3. Replikowane sesje
    4. Implementacja klastra w serwerze Tomcat 6
      1. Funkcje
      2. Konfigurowanie i testowanie rozsyłania grupowego protokołu IP
      3. Konfigurowanie replikacji typu wszystko-wszystko
      4. Testowanie replikacji sesji
      5. Konfigurowanie statycznego członkostwa
      6. Konfigurowanie replikacji typu podstawowa-zapasowa
    5. Dystrybucja żądań JDBC i przełączanie po awarii
    6. Dodatkowe źródła informacji
  14. 11. Podsumowanie
    1. Dodatkowe zasoby
      1. Dokumentacja sieciowa dołączona do Tomcata
      2. Dokumentacja dostępna na stronie internetowej serwera Apache Tomcat
      3. Archiwa listy wysyłkowej poświęconej serwerowi Apache Tomcat
      4. Witryny związane z tą książką
      5. Inne witryny internetowe dotyczące serwera Tomcat
      6. Kanał IRC #tomcat
      7. Listy wysyłkowe poświęcone serwerowi Apache Tomcat
    2. Społeczność
  15. A. Instalowanie środowiska uruchomieniowego Java
    1. Wybieranie pakietu JDK
    2. Radzenie sobie ze starszymi wirtualnymi maszynami Java pakietów GCJ i Kaffe
    3. Sun Microsystems Java SE JDK
    4. IBM J9 JDK
    5. BEA JRockit JDK
    6. Apple Java SE JDK
    7. Excelsior JET
    8. Apache Harmony JDK
  16. B. Plik jbchroot.c
  17. C. Plik BadInputValve.java
  18. D. Plik BadInputFilter.java
  19. E. Pliki pakietu RPM
    1. Pliki pakietu RPM serwera Tomcat 6.0 dla systemu Linux
  20. F. O autorze
  21. Indeks
  22. Kolofon
  23. Copyright