2024.06 2025.06

MyCoRe und Apache Tomcat

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.

Installation

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.

Konfiguration

Im folgenden Abschnitt werden Besonderheiten beim Betrieb eines Tomcat-Servers für MyCoRe-Anwendungen aufgeführt.

AJP-Connector in der 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:

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

Konfiguration: server.xml