Wiki-Quellcode von Tomcat-Einstellungen


Zeige letzte Bearbeiter
1 {{content/}}
2
3 Diese Einstellungen sollten an jedem System entsprechend vorgenommen werden. Optional können noch folgende Einstellungen vorgenommen werden:
4
5 * [[Bereitstellung über HTTPS>>doc:.Bereitstellung über HTTPS.WebHome]]
6 Konfiguration des Tomcats um Aufruf über HTTPS zu ermöglichen
7 * [[{{formcycle/}} von Root-Domain aufrufen>>doc:Formcycle.SystemSettings.TomcatSettings.RootDomainAccess]]
8 Statt etwa über {{code language="none"}}http://formcycle.eu/formcycle/{{/code}} kann {{formcycle/}} so über {{code language="none"}}http://formcycle.eu/{{/code}} aufgerufen werden.
9 * [[Datenverzeichnis von {{formcycle case="dat"/}} ändern>>doc:Formcycle.SystemSettings.TomcatSettings.ChangeDataDirectory]]
10 Verzeichnis, in dem interne Daten von {{formcycle case="dat"/}} und Formularen gespeichert werden.
11
12 == Speicher ==
13
14 Folgende Einstellungen bzgl. Arbeitsspeicher sollten vorgenommen bzw. angepasst werden.
15
16 * -Xms512m
17 Anfangsgröße des Heap
18 * -Xmx4096m
19 Maximalgröße des Heap
20
21 **Beispiel (Linux)**
22
23 Der Pfad zur Konfigurationsdatei ist {{code language="none"}}TOMCAT_VERZEICHNIS/bin/setenv.sh{{/code}}
24
25 {{code language="sh"}}
26 export JAVA_OPTS="$JAVA_OPTS -Xms512m -Xmx4096m"
27 {{/code}}
28
29 == Einstellung am Connector ==
30
31 Folgende Einstellungen sollten am Tomcat in der Konfigurationsdatei {{code language="none"}}TOMCAT_VERZEICHNIS/conf/server.xml{{/code}} vorgenommen werden:
32
33 {{code language="xml"}}
34 <Connector port="80" protocol="HTTP/1.1"
35 connectionTimeout="20000"
36 redirectPort="8443"
37 URIEncoding="UTF-8"
38 maxPostSize="10485760"
39 maxHttpHeaderSize="65536"
40 relaxedQueryChars="[ \ ] ^ ` { | }" />
41 {{/code}}
42
43 {{info}}Wichtig: {{formcycle/}} unterstützt in Version 7 in Kombination mit dem Tomcat 9 momentan kein HTTP/2. Daher darf in dem von {{formcycle/}} verwendeten Connector keine Protokollupgrade-Definition wie {{code language="none"}}<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />{{/code}} vorhanden sein.{{/info}}
44
45 (% class="wikigeneratedid" %)
46 Weitere Informationen zu den Parametern finden Sie in den folgenden Abschnitten.
47
48 == Beschränkung der Upload-Größe ändern ==
49
50 Diese Einstellung betrifft die Maximalgröße von Dateien beim Upload im Formular durch [[Uploadelemente>>url:https://help6.formcycle.de/xwiki/bin/view/Formcycle/FormDesigner/FormElements/Upload]] und beim Upload im Posteingang. Ist die Uploadgröße kleiner als definiert, kommt es zu einem Fehler beim Hochladen der Datei. Der Default-Wert sind 2MB.
51
52 Der Pfad zur Konfigurationsdatei ist {{code language="none"}}TOMCAT_VERZEICHNIS/conf/server.xml{{/code}}
53
54 Folgende Option muss innerhalb des //Connectors// definiert sein:
55
56 {{code language="sh"}}
57 maxPostSize="Wert in Bytes"
58 {{/code}}
59
60 ==== Beispiel für eine maximale Uploadgröße von 10 MB, die Angabe erfolgt in Bytes: ====
61
62 {{code language="sh"}}
63 <Connector ...
64 maxPostSize="10485760"
65 ... />
66 {{/code}}
67
68 == Beschränkung der HTTP-Headergröße ändern ==
69
70 Diese Einstellung betrifft die Maximalgröße der vom Tomcat akzeptierten HTTP-Header. Diese kann zum Beispiel bei aktivierter Kerberos-Authentifizierung den Standardwert überschreiten, sodass Tomcat zum Beispiel der Aufruf eines Formulars mit einem HTTP-Fehlercode 400 (Ungültiger Request) verweigert.
71
72 Der Pfad zur Konfigurationsdatei ist {{code language="none"}}TOMCAT_VERZEICHNIS/conf/server.xml{{/code}}.
73
74 Folgende Option muss innerhalb des //Connectors// definiert sein:
75
76 {{code language="sh"}}
77 maxHttpHeaderSize="Wert in Bytes"
78 {{/code}}
79
80 ==== Beispiel für 64 KB, die Angabe erfolgt in Bytes: ====
81
82 {{code language="sh"}}
83 <Connector ...
84 maxHttpHeaderSize="65536"
85 ... />
86 {{/code}}
87
88 == UTF-8 ==
89
90 Kommt es zu Fehlern bei der Darstellung von Umlauten oder anderen landesspezifischen Zeichen, prüfen Sie, ob das //URIEncoding// am Connector angegeben wurde.
91
92 Der Pfad zur Konfigurationsdatei ist {{code language="none"}}TOMCAT_VERZEICHNIS/conf/server.xml{{/code}}
93
94 Folgende Option muss innerhalb des //Connectors// definiert sein:
95
96 {{code language="sh"}}
97 URIEncoding="UTF-8"
98 {{/code}}
99
100 **Beispiel**
101
102 {{code language="sh"}}
103 <Connector ...
104 URIEncoding="UTF-8"
105 ... />
106 {{/code}}
107
108 (% style="font-family:Helvetica; font-size:14px" %)Kommt es ferner zu Darstellungsproblemen von Dateinamen mit Sonderzeichen und/oder Umlauten ergänzen sie bitte den Java-Parameter {{code language="none"}}-Dfile.encoding=UTF-8{{/code}}. Dieser muss je nach verwendetem Betriebssystem entweder in der verwendeten Konfigurationsdatei oder Konfigurationsfenter angegeben werden.
109
110 (% style="font-family:Helvetica; font-size:14px" %)//**Beispiel (Linux)**//(%%)
111 \\(% style="font-family:Helvetica; font-size:14px" %)//Der Pfad zur Konfigurationsdatei ist {{code language="none"}}TOMCAT_VERZEICHNIS/bin/setenv.sh{{/code}}//
112
113 {{code language="sh"}}
114 export JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"
115 {{/code}}
116
117 == Session-Timeout==
118
119 Das Session-Timeout kann innerhalb der //web.xml// von {{formcycle/}} erhöht werden, sollte die Standardeinstellung von 30 Minuten nicht ausreichen.
120
121 Der Pfad zur Konfigurationsdatei ist {{code language="none"}}TOMCAT_VERZEICHNIS/webapps/formcycle/WEB-INF/web.xml{{/code}}
122
123 {{code language="xml"}}
124 <!-- 30 Minuten bis Session-Timeout -->
125 <session-config>
126 ...
127 <session-timeout>30</session-timeout>
128 ...
129 </session-config>
130 {{/code}}
131
132 == Session-Tracking ==
133
134 Innerhalb der //web.xml// von {{formcycle/}} ({{code language="none"}}TOMCAT_VERZEICHNIS/webapps/formcycle/WEB-INF/web.xml{{/code}}) oder auch in der globalen //web.xml// des Tomcat-Servers ({{code language="none"}}TOMCAT_VERZEICHNIS/conf/web.xml{{/code}}) kann der Modus des zu verwendenden Session-Tracking Modus hinterlegt werden. Standardmäßig gibt es seitens {{formcycle/}} hierfür keine Festlegung, sodass hier sowohl die Verwendung von Cookies oder das Übertragen der Session-ID innerhalb der URL möglich sind. Zweiteres ist ein Rückfall falls z.B. der Browser des Benutzers keine Cookies zulässt. Da eine solche URL jedoch bei unachtsamem Gebrauch in falsche Hände geraten kann und man so ggf. die Sitzung eines angemeldeten Benutzers übernehmen könnte, empfiehlt es sich wenn möglich ausschließlich das Session-Tracking per Cookie zu verwenden. Konfiguriert wird das Verhalten durch das Auskommentieren bzw. Einfügen der gewünschten Mechanismen. Innerhalb der {{formcycle/}}-//web.xml// sind standardmäßig beide Werte auskommentiert was zu dem beschriebenen Standard-Verhalten führt. Ein Session-Tracking ausschließlich per Cookie würde demnach wie folgt aussehen:
135
136 {{code language="xml"}}
137 <session-config>
138 ...
139 <!-- Uncomment the session-trackings-mode(s) you want to use -->
140 <!-- <tracking-mode>URL</tracking-mode> -->
141 <tracking-mode>COOKIE</tracking-mode>
142 ...
143 </session-config>
144 {{/code}}
145
146 == Cookie-Konfiguration ==
147
148 Innerhalb der Session-Konfiguration können sowohl in der globalen Tomcat-//web.xml// ({{code language="none"}}TOMCAT_VERZEICHNIS/conf/web.xml{{/code}}) als auch innerhalb der {{formcycle/}}-//web.xml// ({{code language="none"}}TOMCAT_VERZEICHNIS/webapps/formcycle/WEB-INF/web.xml{{/code}}) Einstellungen bezüglich des verwendeten Session-Cookies getroffen werden. {{formcycle/}} setzt hier standardmäßig bereits den Wert //http-only// was dazu führt, dass der Cookie lediglich innerhalb des Browsers benutzt werden kann. Zusätzlich besteht die Möglichkeit das Cookie auf eine feste Domain (//domain//) und Pfad (//path//) zu binden und auch einen eigenen Namen (//name//) sowie die Gültigkeit (//max-age//) festzulegen. Standardmäßig sind Anpassungen dieser Einstellungen nicht nötig. Relevanter ist jedoch die Option //secure//. Ist diese vorhanden und hat den Wert //true//, werden Cookies lediglich bei der Kommunikation über HTTPS übertragen. Sollte die Anwendung oder der ganze Server ausschließlich über HTTPS bereitgestellt werden, ist es aus Gründen der Sicherheit empfohlen diesen Wert zu setzen. Innerhalb der {{formcycle/}}-//web.xml// würde dies wie folgt aussehen:
149
150 {{code language="xml"}}
151 <session-config>
152 ...
153 <cookie-config>
154 <!-- <comment>This is my special cookie configuration</comment> -->
155 <!-- <domain>example.com</domain> -->
156 <!-- <name>CUSTOM_NAME</name> -->
157 <http-only>true</http-only>
158 <secure>true</secure>
159 <!-- <max-age>30000</max-age> -->
160 <!-- <path>/formcycle</path> -->
161 </cookie-config>
162 </session-config>
163 {{/code}}
164
165 == Kontextname ==
166
167 Der Kontextname wird beispielsweise genutzt, um [[Monitoring Beans>>doc:Formcycle.SystemSettings.Monitoring]] zum Überwachen des Serverstatus einzurichten. Standardmäßig ist der Kontextname der Name der WAR-Datei, kann aber auch geändert werden, indem der Kontextparameter //XFC_CONTEXT_NAME// in der Konfigurationsdatei //web.xml// geändert wird.
168
169 {{code language="xml"}}
170 <context-param>
171 <param-name>XFC_CONTEXT_NAME</param-name>
172 <param-value>formcycle</param-value>
173 </context-param>
174 {{/code}}
175
176 == Benutzerpfad für Tomcat ==
177
178 Auf manchen Linux-basierten Systemen besitzt der Tomcat Nutzer standardmäßig keinen Benutzerordner. Ein solcher wird aber benötigt, damit {{formcycle/}} grundlegende Einstellungen ablegen kann. Der Pfad des Benutzerordners wird üblicherweise in der Datei {{code language="none"}}/etc/passwd{{/code}} vorgenommen.