Zielgruppe BetriebVersion: GSB10.0Runtime-Konfiguration
Die Runtime-Konfiguration der einzelnen GSB Service-Instanzen muss individuell für jede einzelne Instanz bereitgestellt werden. Der GSB Kern liefert eine exemplarische Runtime-Konfiguration die als Grundlage für die individuelle Erstellung der Runtime-Konfiguration genutzt werden kann.
Runtime-Konfigurationen der Service-Instanzen eines Systems werden im Ordner /opt/gsbos/runtime
abgelegt. Für jede einzelne Service-Instanz existiert ein Unterordner, in dem die Service-Instanz spezifischen Konfigurationen abgelegt wird.
Der GSB Kern enthält Runtime-Konfigurationen für eine exemplarische GSB Infrastruktur, die als Grundlage für den Aufbau einer individuellen GSB Infrastruktur genutzt werden können. Diese finden sich im Infrastructure-Artefakt im Ordner infrastructure/runtime
.
Der GSB stützt sich auf Httpd- und Tomcat-Server basierte Service-Instanzen, deren Konfigurationsschema im Folgenden vorgestellt wird.
Aufbau der Runtime-Konfigurationen
Bei den verschiedenen GSB Service-Instanzen und den darin betriebenen Applikationen handelt es sich entweder um Webapplikationen, die in einem Tomcat-Server betrieben werden, oder um Standalone-Applikationen. Der prinzipielle Aufbau der Tomcat-Server basierten Service-Instanzen ist identisch wohingegen die Runtime-Konfigurationen der Standalone-Applikationen applikationsspezifisch und damit individuell ist.
Die folgende Diskussion der Runtime-Konfiguration unterscheidet somit zwischen Tomcat-Server- und Standalone-Service-Instanzen, die im Folgenden vorgestellt werden.
Tomcat-Server basierte Service-Instanzen
Die folgenden Service-Typen und -Instanzen basieren auf einem Tomcat-Server.
- service
- repository
- delivery
- workflow
- editor
- adminportal
- maildistributor
- cas
Für jede Service-Instanz ist im Runtime-Basisverzeichnis (Default: /opt/gsbos/runtime
) ein Unterordner mit dem Namen der Service-Instanz (bspw. delivery1-preview
für den ersten Delivery-Server der Redaktionsumgebung) anzulegen. Unterhalb dieses Ordners finden sich zwei Unterordner:
- Der Ordner
tomcat
enthält die Tomcat-Server spezifische Runtime-Konfiguration. Hierbei handelt es sich um globale und allgemeingültige Konfigurationen, die für den Betrieb des Tomcat-Servers benötigt werden. - Der Ordner
webapps
die applikationsspezifischen Runtime-Konfigurationen der einzelnen Webapplikationen der betreffenden Service-Instanz. Die Runtime-Konfiguration einer Webapplikation findet sich in einem gleichnamigen Unterordner.
Im Folgenden Unterkapitel wird zunächst nur der Aufbau der Runtime-Konfiguration des Tomcat-Servers vorgestellt. Die webapplikationsspezifischen Runtime-Konfigurationen werden später vorgestellt.
Tomcat-Server Runtime-Konfiguration
Im tomcat
-Verzeichnis befinden sich die Dateien tomcat.env
und tomcat.properties
.
Runtime-Konfiguration tomcat.env
In der tomcat.env
Datei werden die Parameter zum Starten des Tomcats benötigt und enthält globale und instanzspezifische Parameter. Im Wesentlichen handelt es sich hier um Konfigurationen für den JVM-Speicher und die Garbage-Collection. Der Aufbau der Konfiguration ist wie folgt:name: value
CATALINA_OPTS= \ (1)
-Xms512m \ (2)
-Xmx2048m \ (3)
-XX:LargePageSizeInBytes=256m \ (4)
-XX:ReservedCodeCacheSize=128m \ (5)
-XX:+UseConcMarkSweepGC (6)
JPDA_ADDRESS=6000 (7)
1 | Java Runtime-Konfiguration für den Tomcat-Server |
2 | Initialer Speicherpool |
3 | Maximaler Speicherpool |
4 | Minimale Speichergröße des Java-Heap, der permanenten Generierung und des Code-Cache |
5 | Angabe der Reservierten Code Cache Size (Default bei Java 8 wäre 256M) |
6 | Verwendung des Garbage Collection-Algorithmus Concurrent Collector um Garbage Collection-Vorgänge im Hintergrund auszuführen |
7 | Port zum Debuggen des Tomcat. Um das Debugging zu aktivieren, muss noch die Umgebungsvariable JPDA_TRANSPORT=dt_socket gesetzt werden |
Runtime-Konfiguration tomcat.properties
In der Datei tomcat.properties
wird die Konfiguration des Tomcat-Servers vorgenommen. Hier werden die instanzspezfischen Konfigurationen der server.xml
und web.xml
definiert.
Die exemplarische Runtime-Konfiguration des Content-Repositories der Redaktionsumgebung sieht wie folgt aus:
Runtime-Konfiguration repository-preview
#######################################################################
#
# Plattformspezifische Tomcat Konfiguration
#
#######################################################################
# Konfiguration Tomcat
tomcat.server.hostname=repository.preview.example.com
tomcat.server.port=6005
tomcat.server.shutdown=__TomcatShutdownPassword__
tomcat.server.jvmRoute=repository-preview
# Konfiguration Tomcat HTTP
tomcat.server.http.port=6001
# Konfiguration Tomcat AJP
tomcat.server.ajp.port=6009
# Konfiguration Tomcat JMX Remote Lifecycle Listener. Definiert die Ports fuer
# JMX/RMI Server Verbindung von Clients hinter einer Firewall
tomcat.server.jmxRemoteLifecycleListener.rmiRegistryPortPlatform=6003
tomcat.server.jmxRemoteLifecycleListener.rmiServerPortPlatform=6004
# Konfiguration des Mail SMTP Hosts
tomcat.context.mail.smtp.host=mail.extern.example.com
tomcat.server.deployIgnore=replication
#######################################################################
#
# Optionale Properties
#
#######################################################################
# Konfiguration Tomcat HTTP
tomcat.server.http.maxKeepAliveRequests=100
tomcat.server.http.maxThreads=125
tomcat.server.http.compression=on
tomcat.server.http.compressionMinSize=2048
tomcat.server.http.compressibleMimeType=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json
# Konfiguration Tomcat AJP
tomcat.server.ajp.maxThreads=200
tomcat.server.ajp.connectionTimeout=300000
#######################################################################
#
# Default Properties
#
#######################################################################
tomcat.web.development=false
tomcat.web.checkInterval=0
tomcat.web.genStringAsCharArray=true
Tabelle 1. Beschreibung der Tomcat Properties
Property-Name | Beschreibung |
---|---|
tomcat.server.hostname | Hostname des Servers |
tomcat.server.jvmRoute | Name der JVM-Route |
tomcat.server.http.port | Tomcat HTTP-Port |
tomcat.server.ajp.port | Tomcat AJP-Port |
tomcat.context.mail.smtp.host | Hostname des SMTP-Host zum versenden von Mails |
tomcat.server.deployIgnore | Zu ignorierende Webapps die nicht deployed werden sollen |
tomcat.server.port | Port zum herunterfahren des Tomcats |
tomcat.server.shutdown | Passwort zum herunterfahren des Tomcats |
tomcat.server.jmxRemoteLifecycleListener.rmiRegistryPortPlatform | Port des RMI Registry |
tomcat.server.jmxRemoteLifecycleListener.rmiServerPortPlatform | Port des RMI für die Remote Verbindung |
tomcat.server.http.maxKeepAliveRequests | Maximale Anzahl der HTTP Verbindungen |
tomcat.server.http.maxThreads | Maximale Anzahl der Threads des HTTP-Connectors |
tomcat.server.http.compression | Aktivieren/Deaktivieren der HTTP/1.1 GZIP-Komprimierung |
tomcat.server.http.compressionMinSize | Angabe der Mindestmenge bevor diese komprimiert wird |
tomcat.server.http.compressibleMimeType | kommaseparierte Liste der zu komprimierenden Mime-Typen |
tomcat.server.ajp.maxThreads | Maximale Anzahl der Threads des AJP-Connectors |
tomcat.server.ajp.connectionTimeout | Timeout des AJP-Connectors in Millisekunden |
tomcat.web.development | Aktiviere/Deaktiviere Jasper im Entwicklungsmodus |
tomcat.web.checkInterval | Interval (in sekunden) in der die JPS-Seiten auf Änderungen geprüft werden |
tomcat.web.genStringAsCharArray | Aktiviere/Deaktiviere Umwandung von Strings in Chars (true verbessert in einigen Fällen die Leistung) |
Weitere Informationen zu den Properties sind auf folgenden Seiten zu finden:
- https://tomcat.apache.org/tomcat-8.0-doc/config/http.html
- https://tomcat.apache.org/tomcat-8.0-doc/config/ajp.html
- https://tomcat.apache.org/tomcat-8.0-doc/jasper-howto.html#Production_Configuration
Hinweis: |
---|
Alle Tomcat-Server bezogenen Properties beginnen entweder mit dem Prefix Die konkreten Propertynamen orientieren sich an den entsprechenden Definitionen in den beiden angesprochenen Dateien. Die Property Weiterführende Informationen zu den Properties finden sich damit auch in den entsprechenden Dateien eines Standard Tomcat-Server und können somit dort bei Bedarf nachgelesen werden. |
Webapplikationen
Die Laufzeitkonfiguration der einzelnen Webapplikationen wird im Runtime-Verzeichnis einer Service-Instanz wie oben skizziert im Ordner webapps
definiert. Für jede Webapplikation ist ein Unterordner mit dem Namen der betreffenden Webapplikation enthalten, der die Runtime-Konfiguration der Webapplikation beinhaltet.
Der GSB stellt die folgenden Webapplikationen zur Verfügung, deren Konfiguration jeweils auf eigenen Unterseiten beschrieben ist:
- adminportal
- cas
- editor
- eventdispatcher
- indexer
- maildistributor
- replication
- repository
- serviceportal
- site
- workflow
Standalone-Applikation basierte Service-Instanzen
Der GSB nutzt folgenden Standalone-Applikationen, deren Runtime-Konfiguration in diesem Kapitel vorgestellt wird:
httpd
: Die Auslieferung der Webseiten und -inhalte erfoglt durch einen Apache-Webserver.solr
: Die eigentliche Suchfunktionalität wird durch einen Solr
httpd Runtime-Konfiguration
Für jede Service-Instanz ist im Runtime-Basisverzeichnis (Default: /opt/gsbos/runtime
) ein Unterordner mit dem Namen der Service-Instanz (bspw. httpd
für den ersten httpd Webserver) anzulegen.
Hinweis: |
---|
Auf einem Server wird üblicherweise nur eine httpd -Instanz betrieben, da es ansonsten zu Portkonflikten kommt. Wenn auf einem Server bspw. sowohl eine Preview- als auch Live-Auslieferung erfolgen soll, dann müssen beide Konfigurationen in einem Webserver definiert werden. |
Die Runtime-Konfiguration des httpd
-Servers besteht aus den folgenden Definitionen:
balancer
enthält die Tomcat Balancer Definitionenconf.d
enthält die GSB spezifischen globalen httpd-Konfigurationenvariables
enthält plattformspezifische Konfigurationen
balancer-Definitionen
Das Verzeichnis balancer
enthält, unterteilt nach Zonen, die Balancer Konfiguration des Apache-Webservers.
Balancer-Definition balancer-preview
# Setzen der Balancer Mitglieder,
# zum deaktivieren bitte auskommentieren,
# zum erweitern bitte eine BalancerMember Zeile kopieren und anpassen
<Proxy balancer://balancerpreview>
BalancerMember ajp://delivery.preview.example.com:6109 route=delivery1-preview
BalancerMember ajp://delivery.preview.example.com:6119 route=delivery2-preview
ProxySet nofailover=off
ProxySet stickysession=JSESSIONID
</Proxy>
Die Konfiguration umfasst die Standardkonfiguration eines Tomcat-Balancers des Apache Moduls Balancer. Details zur Balancer-Definition können der Dokumentation des Apache Moduls Mod Balancer entnommen werden. Plattformspezifische Anpassungen umfassen in jedem Fall die individuelle Definition der im jeweiligen Balancer enthaltenen Tomcat-Server (BalancerMember
).
Verzeichnis conf.d
Das Verzeichnis conf.d
enthält den Einstiegspunkt der Apache Konfiguration des GSB. Hier befindet sich die Datei gsbos.conf
, welche die benötigten globalen Konfigurationen includiert. Diese Konfigurationsdatei muss in dem vom System- bzw. Applikations-Betrieb bereitgestellen Apache berücksichtigt und geladen werden werden.
Konfigurationsdatei gsbos.conf
# Pfadangabe des installieren Service-Type httpd
Define GsbosHttpdBaseDir /opt/gsbos/software/httpd
# Pfadangabe des Runtime Verzeichnis
Define GsbosRuntimeBaseDir /opt/gsbos/runtime
#################################################################
# Laden der HTTP Variablen des GSB/OS
Include ${GsbosHttpdBaseDir}/conf/include/loadVariables.conf
# Laden der HTTP Module des GSB/OS
Include ${GsbosHttpdBaseDir}/conf/include/loadModules.conf
# Laden der HTTP Macros des GSB/OS
Include ${GsbosHttpdBaseDir}/conf/macro/*.conf
# Laden der HTTP vHosts des GSB/OS
Include ${GsbosHttpdBaseDir}/conf/include/loadVhosts.conf
Beschreibung der gsbos.conf
-Properties:
Property-Name | Beschreibung |
---|---|
GsbosHttpdBaseDir | Basisordner für die GSB spezifischen Webserver (Konfigurations-)Dateien (Makros, VHosts, etc.). Diese Property muss nur angepasst werden, wenn die GSB Service-Typen nicht im Standardverzeichnis installiert werden. |
GsbosRuntimeBaseDir | Basisordner der GSB Runtime-Konfiguration. Diese Property muss nur angepasst werden, wenn die Runtime-Konfiguration nicht im Standardverzeichnis abgelegt wird. |
Include loadVariables.conf | Die loadVariables Datei enthält einige globale und allgemeingültige httpd -Definitionen und muss daher als erstes geladen werden. |
Include loadModules.conf | Die Datei loadMacros lädt die für den Betrieb des GSB httpd benötigten Module. |
Include Macros | Die Virtual-Host-Definitionen der einzelnen GSB-Mandanten werden mit Hilfe von Macros definiert. Die Konfigurations-Dateien im macro -Ordner enthalten die GSB spezifischen Macro-Definitionen. |
Include loadVhosts.conf | Die Virtual-Host-Definitionen der GSB-Mandanten werden über die Datei loadVhosts geladen. |
Hinweis: |
---|
Der Aufbau und Inhalt der Datei gsbos.conf muss in der Regel nicht angepasst werden. Durch Auslagerung der Datei in die Runtime-Konfiguration besteht allerdings die Möglichkeit der einfachen Anpass- und Erweiterbarkeit durch den Plattformbetreiber. |
Verzeichnis variables
Das Verzeichnis variables
enthält die Konfigurationsdatei platform_variables.conf
. Über diese Datei können einzelne Zonen (Live, Preview, Service) abgeschaltet und die CAS-Authentifikation deaktiviert werden. Zusätzlich kann diese Datei genutzt werden um vorhandene Variablen (z.B. mandantenspezifische Server- und Alias-Namen) Plattformspezifisch zu überschreiben.
Konfigurationsdatei platform_variables.conf
# Pfadangabe des installieren Service-Type httpd
Define GsbosHttpdBaseDir /opt/gsbos/software/httpd
# Pfadangabe des Runtime Verzeichnis
Define GsbosRuntimeBaseDir /opt/gsbos/runtime
#####################################################################
# Laden der HTTP Variablen des GSB/OS
Include ${GsbosHttpdBaseDir}/conf/include/loadVariables.conf
# Laden der HTTP Module des GSB/OS
Include ${GsbosHttpdBaseDir}/conf/include/loadModules.conf
# Laden der HTTP Macros des GSB/OS
Include ${GsbosHttpdBaseDir}/conf/macro/*.conf
# Laden der HTTP vHosts des GSB/OS
Include ${GsbosHttpdBaseDir}/conf/include/loadVhosts.conf
Beschreibung der platform_variables.conf
-Properties:
Property-Name | Beschreibung |
---|---|
editor_use_cas_auth | Die Variable definiert ob der Webserver eine CAS-Authentisierung unterstützen soll (bspw. für eine Anmeldung am Adminportal oder Editor). Wenn keine CAS-Authentisierung benötigt wird, dann muss die Variablendefinition auskommentiert werden. |
EnableHttpsVhosts | Wenn diese Variable definiert ist, dann lädt der Webserver über die Datei loadVhosts.conf (s.o.) die https-Unterstützung. |
EnableLiveVhosts | Bei Definition dieser Variable werden die Live-Vhost-Definitionen der GSB-Mandanten geladen. |
EnablePreviewVhosts | Bei Definition dieser Variable werden die Preview-Vhost-Definitionen der GSB-Mandanten geladen. |
EnableServiceVhosts | Wenn diese Variable definiert ist, dann lädt der Webserver die Vhost-Definitionen für das Adminportal. |
Hinweis: |
---|
Die Vhost-Definitionen sind innerhalb der GSB-Mandanten im httpd-Subprojekt in Unterordner für Live, Preview, Service (s.a. Mandant standardlsg ) |
solr Runtime-Konfiguration
Für jede Service-Instanz ist im Runtime-Basisverzeichnis (Default: /opt/gsbos/runtime
) ein Unterordner mit dem Namen der Service-Instanz (bspw. solr-preview
für den ersten Solr-Server der Redaktionsumgebung) anzulegen.
Die Runtime-Konfiguration einer solr
-Service-Instanzg besteht ausschließlich aus der Datei solr.env
, die wie folgt aufgebaut ist:
Runtime-Konfiguration solr-preview
# Pfad zu den configsets
Beschreibung der Solr-Properties:
SOLR_CONFIGSETS_DIR=/opt/gsbos/software/solr/configsets
# Pfad zum Solr Home Verzeichnis
SOLR_HOME=/opt/gsbos/software/solr/preview
# Pfad zu den Solr Libs
SOLR_SHARED_LIB_DIR=/opt/software/solr/default/lib
# Remote Connection Port
SOLR_RMI_PORT=6403
# Solr Port
SOLR_PORT=6401
# Port zum stoppen des Solr
SOLR_STOP_PORT=6405
Property-Name | Beschreibung |
---|---|
SOLR_CONFIGSETS_DIR | Basisordner für die Solr Configsets (s.a. https://lucene.apache.org/solr/guide/7_0/config-sets.html) |
SOLR_HOME | Basisordner der Solr-Instanz. Der GSB unterscheidet verschiedene Instanzen, preview für die Redaktiongsumgebung, master für den Solr-Master der Liveumgebung und replication für die Solr-Replication Server der Liveumgebung. |
SOLR_SHARED_LIB_DIR | Verzeichnis in dem Shared-Libraries des Solr-Server gesucht werden (s.a. Installationsanleitung) |
SOLR_RMI_PORT | Port für RMI-Verbindungen zum Solr-Server |
SOLR_PORT | Port unter dem der Solr-Server betrieben wird. Dieser Port wird durch die Indizierung und für die Suche durch die Delivery- oder Editor-Instanzen genutzt. |
SOLR_STOP_PORT | Port zum Stoppen des Solr-Servers |