Apache Tomcat

Ein einfacher und schnell installierter Application Server, primär für Entwicklungszwecke.

Installation

dnf -y install tomcat
systemctl enable --now tomcat.service

Tipp

Tomcat kann per tomcat@.service auch mehrfach unter verschiedenen Ports auf dem gleichen Host laufen.

Wer die nette Startseite benötigt („ROOT“-Webapp):

dnf -y install tomcat-webapps

Wer das Admin-Interface benötigt (Zugriff auf den Virtual Host Manager unter http://tomcat:8080/host-manager/html, den Web Application Manager unter http://tomcat:8080/manager/html und den Server Status unter http://tomcat:8080/manager/status):

dnf -y install tomcat-admin-webapps
# and if also using the ROOT webapp:
dnf -y install tomcat-docs-webapp  # otherwise some links will be broken on the ROOT startpage

Tomcat Management-Benutzer anlegen:

echo -n "linuxfabrik" | openssl dgst -sha256

Das gehashte Passwort findet sich in der Ausgabe nach „(stdin)=“. Benutzer anlegen:

/etc/tomcat/tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager-gui"/>
  <user username="tomcat-manager" password="hashedpass1" roles="manager-gui"/>
  <role rolename="admin-gui"/>
  <user username="tomcat-admin" password="hashedpass1" roles="admin-gui" />
</tomcat-users>

Benutzern Zugriff auf die Webapplikation erlauben (dieses Verfahren gilt immer pro Webapp):

/var/lib/tomcat/webapps/manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
  <!--
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
  -->
</Context>

Statischer Content

Wird direkt unter /var/lib/tomcat/webapps/static abgelegt. Die Datei /var/lib/tomcat/webapps/static/test.html ist dann per http://tomcat:8080/static/test.html aufrufbar.

Optimierung

Tomcat Startup-Zeit beschleunigen - die Meldung INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. lässt sich wie folgt beheben:

cd /var/lib/tomcat/webapps/mywebapp
ls WEB-INF/lib | awk '{print $1",\"}'

Die lange Ergebnisliste des obigen Kommandos an den Parameter

  • tomcat.util.scan.DefaultJarScanner.jarsToSkip (bis Tomcat 7)

  • tomcat.util.scan.StandardJarScanFilter.jarsToSkip (Tomcat 8+)

in der Datei /path/o/tomcat/conf/catalina.properties anhängen.

Built on 2024-07-16