Tomcat

Serwer Tomcat

Należy pobrać ze strony projektu https://tomcat.apache.org/ wybraną wersję tomcata.

Przykładowo pobranie wersji 8.3.5.31 korzystając z adresu jednego z linków na stronie.

wget http://ftp.ps.pl/pub/apache/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.tar.gz

Po czym rozpakować plik

tar zxvf apache-tomcat-8.5.31.tar.gz

Należy zarezerwować 2 porty TCP.

Później w pliku konfiguracyjnym serwera Tomcat apache-tomcat-8.5.31/conf/server.xml należy zmienić numery portów (poprzedzone port=: 8080 oraz 8005) na numery wcześniej zarezerwowanych portów. Dwa pierwsze numery muszą być takie same.

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
<Connector executor="tomcatThreadPool" 
           port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
<Server port="8005" shutdown="SHUTDOWN">

Resztę konfiguracji serwera Tomcat należy ustawić samodzielnie. Po zmianie niezbędnych ustawień trzeba wyeksportować zmienną środowiskową export CATALINA_BASE="/home/login/apache-tomcat-8.5.31/". Serwer Tomcat w zależności od wybranej wersji należy uruchomić poleceniem:

apache-tomcat-8.5/bin/startup.sh

Aby serwer był dostępny na porcie 80 należy utworzyć domenę typu proxy z adresem docelowym localhost i portem docelowym takim samym jaki został wpisany w Connector port.

Aby ograniczyć wykorzystanie RAMu przez Tomcat należy utworzyć plik setenv.sh w /usr/home/login/apache-tomcat-8.5.31/bin/, a w nim sprecyzować CATALINA_OPTS, na przykład:

CATALINA_OPTS='-Xms512m -Xmx1024m'

Wiele instancji

Tomcat obsługuje serwowanie wielu aplikacji webowych na jednym serwerze. Aby dodać nową należy zarezerwować dodatkowy port TCP oraz trzeba dopisać do pliku /usr/home/login/apache-tomcat-8.5.31/conf/server.xml konfigurację nowej strony:

<Service name="webapp">
  <Connector port="35160" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
  <Engine name="Catalina" defaultHost="localhost">
  <Host name="localhost"  appBase="webapp2" unpackWARs="true" autoDeploy="true">
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
          prefix="webapp2_access_log" suffix=".txt"
          pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>
  </Engine>
</Service>