Tomcat: Różnice pomiędzy wersjami

 
(Nie pokazano 33 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
=== Serwer Tomcat ===
+
== Przygotowanie ==
 
+
Pierwszym krokiem jest skopiowanie serwera do swojego katalogu domowego poleceniem:
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.
 
  
 +
Tomcat 8.5
 +
<syntaxhighlight lang="bash">
 +
cp -r /usr/local/apache-tomcat-8.5 ~/apache-tomcat
 +
</syntaxhighlight>
 +
Tomcat 9.0
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
wget http://ftp.ps.pl/pub/apache/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.tar.gz
+
cp -r /usr/local/apache-tomcat-9.0 ~/apache-tomcat
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
Tomcat 10.0
Po czym rozpakować plik
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
tar zxvf apache-tomcat-8.5.31.tar.gz
+
cp -r /usr/local/apache-tomcat-10.0 ~/apache-tomcat
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
Następnie należy odblokować [[Binexec]] oraz [[Rezerwacja portów|zarezerwować]] 2 porty TCP.
  
Należy [[Rezerwacja portów|zarezerwować]] 2 porty TCP.  
+
== Konfiguracja ==
 +
W pliku konfiguracyjnym serwera Tomcat <code class="directory">/usr/home/LOGIN/apache-tomcat/conf/server.xml</code> 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.
  
Później w pliku konfiguracyjnym serwera Tomcat <code class="directory">apache-tomcat-8.5.31/conf/server.xml</code> należy zmienić numery portów (poprzedzone <code>port=</code>: 8080 oraz 8005) na numery wcześniej zarezerwowanych portów. Dwa pierwsze numery muszą być takie same.
 
 
<syntaxhighlight lang="xml">
 
<syntaxhighlight lang="xml">
 
<Connector port="8080" protocol="HTTP/1.1"
 
<Connector port="8080" protocol="HTTP/1.1"
Linia 23: Linia 25:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<syntaxhighlight lang="xml">
 
<syntaxhighlight lang="xml">
<Connector executor="tomcatThreadPool"  
+
<Connector executor="tomcatThreadPool"  
 
           port="8080" protocol="HTTP/1.1"
 
           port="8080" protocol="HTTP/1.1"
 
           connectionTimeout="20000"
 
           connectionTimeout="20000"
 
           redirectPort="8443" />
 
           redirectPort="8443" />
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<syntaxhighlight lang="xml">
 
<syntaxhighlight lang="xml">
<Server port="8005" shutdown="SHUTDOWN">  
+
<Server port="8005" shutdown="SHUTDOWN">
 
</syntaxhighlight>
 
</syntaxhighlight>
Resztę konfiguracji serwera Tomcat należy ustawić samodzielnie. Po zmianie niezbędnych ustawień trzeba wyeksportować zmienną środowiskową <code>export CATALINA_BASE="/home/login/apache-tomcat-8.5.31/"</code>. Serwer Tomcat w zależności od wybranej wersji należy uruchomić poleceniem:
+
 
 +
Resztę konfiguracji serwera Tomcat należy ustawić samodzielnie. Po zmianie niezbędnych ustawień należy ustawić zmienną <code>CATALINA_BASE="/usr/home/LOGIN/apache-tomcat"</code> poprzez dodanie jej w nowo utworzonym przez pliku setenv.sh w /usr/home/LOGIN/apache-tomcat/bin/. W miejscu LOGIN należy podać login swojego konta hostingowego. Do tego samego pliku można również wstawić ograniczenie RAM dla serwera Tomcat przy pomocy zmiennej CATALINA_OPTS, przykład:
 +
 
 +
CATALINA_OPTS='-Xms512m -Xmx1024m'
 +
 
 +
Serwer Tomcat uruchomia się poleceniem:
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
apache-tomcat-8.0/bin/startup.sh
+
~/apache-tomcat/bin/startup.sh
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Aby serwer był dostępny na porcie 80 należy [[WWW#Proxy|utworzyć]] domenę typu proxy z adresem docelowym ''localhost'' i portem docelowym takim samym jaki został wpisany w <code>Connector port</code>.
+
Aby serwer był dostępny na porcie 80/443 należy [[WWW#Proxy|utworzyć domenę typu proxy]] z adresem docelowym localhost i portem docelowym takim samym jaki został wpisany w <code>Connector port</code>.
  
Aby ograniczyć wykorzystanie RAMu przez Tomcat należy utworzyć plik <code class="directory">setenv.sh</code> w <code class="direcotry">/usr/home/''login''/apache-tomcat-8.5.31/conf/</code>, a w nim sprecyzować CATALINA_OPTS, na przykład:
 
CATALINA_OPTS='-Xms512m -Xmx1024m'
 
  
==== Wiele instancji ====
+
== 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 <code class="directory">/usr/home/''login''/apache-tomcat-8.5.31/conf/server.xml</code> konfigurację nowej strony:
+
''Tomcat'' obsługuje serwowanie wielu aplikacji webowych na jednym serwerze. Aby dodać nową należy zarezerwować dodatkowy port TCP oraz trzeba dopisać do pliku <code class="directory">/usr/home/LOGIN/apache-tomcat/conf/server.xml</code> konfigurację nowej strony:
 
<syntaxhighlight lang="xml">
 
<syntaxhighlight lang="xml">
 
<Service name="webapp">
 
<Service name="webapp">
Linia 58: Linia 62:
 
</Service>
 
</Service>
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
== Automatyczne uruchamianie serwera Tomcat ==
 +
Aby Tomcat startował automatycznie po ponownym uruchomieniu serwera należy utworzyć odpowiednie zadanie w [[Cron]]. W formularzu w [[DevilWEB|panelu konta hostingowego]] po przejściu do Cron należy wybrać uruchamianie po reboot. W przypadku dodawania zadania poprzez SSH utworzyć wpis z @reboot. Wpis uruchamiający serwer:
 +
 +
<syntaxhighlight lang="bash">
 +
/bin/sh /usr/home/LOGIN/apache-tomcat/bin/startup.sh
 +
</syntaxhighlight>
 +
  
 
[[Category:Java]]
 
[[Category:Java]]

Aktualna wersja na dzień 17:08, 21 lis 2022

Przygotowanie

Pierwszym krokiem jest skopiowanie serwera do swojego katalogu domowego poleceniem:

Tomcat 8.5

cp -r /usr/local/apache-tomcat-8.5 ~/apache-tomcat

Tomcat 9.0

cp -r /usr/local/apache-tomcat-9.0 ~/apache-tomcat

Tomcat 10.0

cp -r /usr/local/apache-tomcat-10.0 ~/apache-tomcat

Następnie należy odblokować Binexec oraz zarezerwować 2 porty TCP.

Konfiguracja

W pliku konfiguracyjnym serwera Tomcat /usr/home/LOGIN/apache-tomcat/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ń należy ustawić zmienną CATALINA_BASE="/usr/home/LOGIN/apache-tomcat" poprzez dodanie jej w nowo utworzonym przez pliku setenv.sh w /usr/home/LOGIN/apache-tomcat/bin/. W miejscu LOGIN należy podać login swojego konta hostingowego. Do tego samego pliku można również wstawić ograniczenie RAM dla serwera Tomcat przy pomocy zmiennej CATALINA_OPTS, przykład:

CATALINA_OPTS='-Xms512m -Xmx1024m'

Serwer Tomcat uruchomia się poleceniem:

~/apache-tomcat/bin/startup.sh

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


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/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>

Automatyczne uruchamianie serwera Tomcat

Aby Tomcat startował automatycznie po ponownym uruchomieniu serwera należy utworzyć odpowiednie zadanie w Cron. W formularzu w panelu konta hostingowego po przejściu do Cron należy wybrać uruchamianie po reboot. W przypadku dodawania zadania poprzez SSH utworzyć wpis z @reboot. Wpis uruchamiający serwer:

/bin/sh /usr/home/LOGIN/apache-tomcat/bin/startup.sh