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:
<?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):
<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