MyCoRe-Anwendungen benötigen einen Webserver (Servlet-Container), der Java-Webanwendungen ausführt und HTTP-Anfragen verarbeitet. Insbesondere für den produktiven Einsatz wird dazu die Open-Source-Software Apache Tomcat empfohlen.
Für den Betrieb einer MyCoRe-Awendung wird eine Tomcat-Version benötigt, die die darin verwendete Version der
Jakarta Servlet Spezifikation unterstützt.
Eine Übersicht zu verschiedenen Tomcat Versionen befindet sich hier.
MyCoRe-Anwendungen, die auf MyCoRe
2025.06
basieren, nutzen Servlet Spec 6.0
und benötigen deshalb einen Tomcat 10.1.x
.
Im MyCoRe-Blog-Artikel "Tomcat1 10.1 Installation und Konfiguration"
werden wesentliche Aspekte der Installation (Download, Konfiguration der server.xml
, Systemd-Skript, Logging) ausführlich beschrieben.
Im folgenden Abschnitt werden Besonderheiten beim Betrieb eines Tomcat-Servers für MyCoRe-Anwendungen aufgeführt.
server.xml
Im Produktivbetrieb empfehlen wir, für die Kommunikation zwischen Tomcat-Server und vorgeschaltetem Proxy-Server (Apache2, Nginx) den Einsatz des AJP-Connectors. Einige Parameter müssen angepasst werden:
encodedSolidusHandling
Mit diesem Parameter wird das Verhalten des Webservers bei der Verarbeitung von prozent-codierten Schrägstrichen im URL-Pfad konfiguriert.
Da beispielsweise in der IIIF-API Identifikatoren auftreten können, die einen Dateipfad enthalten, ist eine korrekte Behandlung
dieses Phänomens notwendig.
Das Attribute muss auf encodedSolidusHandling="decode"
gesetzt werden.
maxParameterCount
und maxPartCount
Mit den letzten Tomcat-Minor-Releases (10.1.42, 10.1.43) wurden die Default-Werte für diese Parameter reduziert.
Damit die Such- und Eingabemasken in MyCoRe weiterhin funktionieren, müssen die Werte jetzt explizit überschrieben werden.
Empfohlen sind: maxParameterCount="100"
und maxPartCount="10"
.
packetSize
Dieser Parameter definiert die maximale Paketgröße bei der Kommunikation zwischen Webserver und vorgeschaltetem Proxy.
Der Defaultwert ist zu gering und es wird empfohlen hier den Maximalwert zu verwenden. Dabei ist zu beachten,
das in der Konfiguration des Proxy-Servers (Apache2, Nginx) der selbe Wert gesetzt wird.
Empfohlen ist: packetSize="65536"
.
Es folgt eine Beispiel-Konfiguration für den AJP-Connector:
Konfiguration:
1
2
3
<Connector protocol="AJP/1.3" packetSize="65536" maxParameterCount="100" maxPartCount="10" tomcatAuthentication="false"
scheme="https" secretRequired="false" allowedRequestAttributesPattern=".*"
encodedSolidusHandling="decode" address="0.0.0.0" port="8009" redirectPort="8443" />
server.xml