Konfiguracja serwera TOMCAT

SERVER.XML

To właśnie w tym pliku znajduje się większość istotnej konfiguracji. Sam plik jest podzielony na pewne sekcje, ogólny zarys zagnieżdżeń sekcji prezentuje się tak:

Element Server

Nadrzędny element struktury. Musi on być główną strukturą, może występować tylko jeden. Reprezentuje cały serwer. Może zawierać jedną lub więcej usług (), musi posiadać przynajmniej jedną.

Element Service

Zawiera jeden lub więcej elementów i tylko jeden element

Element Connector

Reprezentuje klasę odpowiedzialną za odpowiadanie na żądania. Kilka ciekawych parametrów:

Nazwa parametru

Sposób wprowadzenia

Opis

port

Port=”80”

Port nasłuchu connectora

maxPostSize

maxPostSize=”10m”

Maksymalna wielkość przesyłanego przez POST formularza. Jeśli ustawisz 0, nie będzie żadnego limitu. Domyślny limit to 2MB.

uriEncoding

uriEncoding=”utf-8”

Określa kodowanie znaków w adresach URL. Domyślnie ustawione na ISO-8859-1

address

Address=”1.2.3.4”

Określa adres na którym connector ma nasłuchiwać. Użyteczne gdy serwer ma kilka kart sieciowych, a usługi Tomcata mają być dostępne tylko przez jedną z nich. Domyślnie nie jest ustaiwony.

compression

compression=”off”

Umożliwia włączenie kompresji dla przesyłanych przez dany Connector danych. Służy do ograniczania zużycia transferu. Możliwe są trzy ustawienia. OFF – wyłączone, ON – włączone dla treści tekstowych, FORCE – kompresja dla wszystkich elementów, nie tylko tekstowych. Domyślnie wyłączony

connectionTimeout

connectionTimeout=”60000”

Maksymalny czas dla wywołania. Jeśli nie zostanie ono obsłużone przez wskazany czas, jest przerywane. Wartość wyrażona w milisekundach. Domyślnie 60s. Ustawienie wartości -1 powoduje całkowite wyłączenie limitów.

maxThreads

MaxThreads=”200”

Maksymalna ilość wątków które mogą być utworzone do obsługi żądań przychodzących na dany Connector. Domyślnie 200.

acceptCount

AcceptCount=”10”

Maksymalna ilość żądań która może zostać skolejkowana na danych Connectorze. Domyślnie 10.

Element Engine

Obsługuje wszystkie żądania przychodzące do elementów należące do nadrzędnej usługi (elementu ).

Element Host

Reprezentuje wirtualny host wewnątrz serwera. Każdy host może być nadrzędnym elementem dla jednego lub więcej elementów reprezentujących aplikacje. Ma on kilka interesujących parametrów – większość z nich została omówiona już wcześniej.

Nazwa parametru

Sposób wprowadzenia

Opis

Name

name=”localhost”

Nazwa wirtualnego hosta. Jeśli masz przekierowane kilka domen na ten sam adres IP serwera, możesz utworzyć kilka elementów HOST o różnych parametrach name. Dzięki temu w zależności od adresu wywołania, żądanie będzie przekazywane do odpowiedniego wirtualnego hosta. Co nam to daje? Obsługę wielu domen na jednym Tomcacie, a także możliwość stosowania subdomen na zasadzie:

blog.jsystems.pl

forum.jsystems.pl

etc.

Gdybyśmy coś takiego chcieli osiągnąć, nasza konfiguracja powinna wyglądać mniej więcej tak:

 

 

 

 

 

 

Ważne jest by wartość parametru name pokrywała się z wartością parametru defaultHost dla podrzędnego elementu Engine. Jeśli takowy nie jest ustawiony, domyślnie przyjmuje localhost. Wartość localhost zarówno w elemencie host jak i engine obsługuje wszystkie żądania.

appBase

appBase=”webapps”

Deklaruje nazwę katalogu w którym serwer Tomcat ma poszukiwać plików aplikacji wdrożonych w ramach tego wirtualnego hosta. Domyślnie jest to katalog webapps. Może to być zarówno ścieżka bezwzględna jak i względna do katalogu instalacji Tomcata (CATALINA_HOME).

autoDeploy

autoDeploy=”true”

Określa czy serwer Tomcat ma automatycznie wdrażać aplikacje na danym hoście wirtualnym. Domyślnie ustawiony na true.

deployOnStartup

deployOnStartup=”true”

Określa czy znalezione przy starcie serwera aplikacje wewnątrz katalogu określonego przez parametr appBase mają być automatycznie wdrażane czy nie. Domyślnie ustawiony na true.

unpackWARs

unpackWARs=”false”

Określa czy aplikacje wdrożone pod postacią plików WAR mają być rozpakowywane podczas wdrażania (w ramach danego wirtualnego hosta) i pliki mają być podawane z rozpakowanego katalogu, czy też mają być pobierane bezpośrednio z pliku war. Domyślnie ustawiony na true.

workDir

workDir=”work”

Wskazuje katalog roboczy na użytek danego wirtualnego hosta. Domyślnie ustawiony na podkatalog work serwera Tomcat.

 

Element Context

Każdy element Context reprezentuje jedną aplikację uruchomioną w ramach hosta na serwerze Tomcat. Elementów Context wewnątrz elementu Host może być dowolna ilość. Zasadniczo ilekroć będę pisał o context – możesz to rozumieć przez jakąś konkretną aplikację. Niektóre z parametrów są takie same jak dla elementu Host który jest dla elementu Context nadrzędny. Jeśli zdublujemy parametry to to który obowiązuje zależy od ustawienia parametru „override” elementu Context. Ten jest domyślnie ustawiony na true. Wynika z tego, że nawet jeśli będziemy mieć ten sam parametr np. „unpackWar” ustawiony i dla Host i dla Context to obowiązuje ten ustawiony dla Context, ponieważ przesłania ten zdeklarowany w elemencie Host. Będzie tak tak długo, jak długo nie zmienimy domyślnej wartości parametru override ( który nawet nie musi być wprowadzony) z true na false. Po takie zmianie ważniejsze będzie ustawienie dla elementu Host i ono będzie obowiązywać, niezależnie od ustawień elementu Context.

Nazwa parametru

Sposób wprowadzenia

Opis

docBase

docBase=”wyginamSmialoCialo”

Wskazuje katalog (będący podkatalogiem katalogu ustawionego w parametrze appBase elementu Host) w którym serwer ma szukać plików danej aplikacji. Jeśli nie ustawimy tego parametru, serwer będzie poszukiwał katalogu o nazwie zgodnej z nazwą aplikacji.

path

Path=”/OMG”

Względny adres pod jakim ma być dostępna aplikacja. Jeśli tego nie ustawimy, aplikacja będzie dostępna pod adresem zgodnym z nazwą katalogu aplikacji. Wartość path musi być unikalna w ramach całego elementu HOST.

reloadable

reloadable=”true”

Jeśli jest ustawiony na true, Tomcat będzie cyklicznie sprawdzał zawartość podkatalogów aplikacji WEB-INF/classes i WEB-INF/lib pod kątem ewentualnych zmian. Jeśli takowe zmiany wykryje – przeładowuje aplikację.

override

override=”true”

Określa czy ustawienia dla elementu Context mają przesłaniać ustawienia nadrzędnego elementu Host.

unpackWar

unpackWar=”true”

Jak w elemencie Host, ale dotyczy tylko danej aplikacji.

workDir

workDir=”iHaveNoTimeToWork”

Jak w elemencie Host, ale dotyczy tylko danej aplikacji.

cachingAllowed

cachingAllowed=”true”

Od ustawienia tego elementu zależy czy statyczne zasoby aplikacji (takie jak obrazki czy pliki CSS) będą przez Tomcata buforowane.

Ten artykuł jest elementem poniższych kursów: