Zeige letzte Bearbeiter
1 Um sicher zustellen, dass der WildFly Server korrekt funktioniert, sollten noch Änderungen an der Konfigurationsdatei
2
3 ```text
4 /opt/wildfly/standalone/configuration/standalone.xml
5 ```
6
7 vorgenommen werden.
8
9 ## HTTP-Listener
10
11 Der `default http-listener` muss so konfiguriert werden, dass bei Proxy-Aufrufen die Adressen weitergeleitet werden. Zusätzlich kann die `max-post-size` und die `max-parameters` nach Ihren Bedürfnissen eingestellt werden. Folgendes Beispiel bildet unsere aktuellen Empfehlungen ab:
12
13 ```xml
14 <http-listener
15 name="default"
16 proxy-address-forwarding="true"
17 socket-binding="http"
18 redirect-socket="https"
19 max-post-size="157286400"
20 max-parameters="1500"
21 ></http-listener>
22 ```
23
24 ## Deployment Timeout
25
26 Da der Start des voll bestückten WildFly Servers länger als eine Minute dauern kann, muss ein entsprechender Timeout im Element `<deployment-scanner>` eingefügt werden, z. B. so:
27
28 ```xml
29 <deployment-scanner
30 path="deployments"
31 relative-to="jboss.server.base.dir"
32 scan-interval="5000"
33 deployment-timeout="6000"
34 runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"
35 ></deployment-scanner>
36 ```
37
38 und die `<system-properties>` entsprechend erweitern:
39
40 ```xml
41 <system-properties>
42 <property name="jboss.as.management.blocking.timeout" value="6000"></property>
43 </system-properties>
44 ```
45
46 ## Security
47
48 Die sichere Ausführung von Regeln benötigt eine Erweiterung im Subsystem `security-manager`. Das Element `deployment-permissions` muss um ein `minimum-set` erweitert werden, sodass der gesamte Subsystem-Block folgendermaßen aussehen muss:
49
50 ```xml
51 <subsystem xmlns="urn:jboss:domain:security-manager:1.0">
52 <deployment-permissions>
53 <minimum-set>
54 <permission class="java.security.AllPermission"></permission>
55 </minimum-set>
56 <maximum-set>
57 <permission class="java.security.AllPermission"></permission>
58 </maximum-set>
59 </deployment-permissions>
60 </subsystem>
61 ```
62
63 ## Vermeidung von Information-Disclosure
64
65 Zur unnötigen Ausgabe des Servernamens bzw. der Versionsnummer müssen unterhalb des Subsystem undertow:3.1 entfernt werden. Die zu löschenden Zeilen sind:
66
67 ```xml
68 <filter-ref name="server-header"></filter-ref>
69 <filter-ref name="x-powered-by-header"></filter-ref>
70 ```
71
72 sowie der Abschnitt
73
74 ```xml
75 <filters>
76 <response-header name="server-header" header-name="Server" header-value="WildFly/10"></response-header>
77 <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"></response-header>
78 </filters>
79 ```
80
81 ## Generelles setzen von security-Flags (secure und http-only)
82
83 Zur generellen Setzung der security-Flags secure und http-only kann folgender Eintrag innerhalb des Subsystems undertow:3.1 innerhalb des Elements servlet-container ergänzt werden:
84
85 ```xml
86 <session-cookie http-only="true" secure="true"></session-cookie>
87 ```
88
89 ## Servertuning
90
91 Es ist möglich WildFly - falls physisch vorhanden - mehr Speicher zuzuteilen. Hierzu kann man die Datei
92
93 ```text
94 /opt/wildfly/bin/standalone.conf
95 ```
96
97 öffnen und die Variable `JAVA_OPTS` entsprechend den Speicheranforderungen ändern. Standardmäßig sollte hier
98
99 ```bash
100 if [ "x$JAVA_OPTS" = "x" ]; then
101 JAVA_OPTS="-server -Xms4g -Xmx10g -XX:MaxMetaspaceSize=4g
102 -Djava.net.preferIPv4Stack=true"
103 ...
104 fi
105 ```
106
107 ausreichen. Allerdings kann es je nach Anzahl der Kunden, die auf dem Server gehostet werden, nötig werden den initialen Heapspace (Parameter `-Xms`), den maximalen Heapspace (Parameter `-Xmx`) , den Metadaten-Speicher (`-XX:MaxMetaspaceSize`) und/oder die maximale Stack-Größe (`-Xss`) zu erhöhen bzw. zu verringern. Als Vergleichswert kann die Konfiguration unseres Produktivsystems mit
108
109 ```text
110 -Xms4g -Xmx10g -XX:MaxMetaspaceSize=4g
111 ```
112
113 dienen.
114
115 Zusätzlich kann bei der Verwendung von open9j noch das Teilen von Klassen verwendet werden. Hierzu ergänzen Sie die obere Zeile um die folgenden Einträge: `-Xshareclasses -Xscmx256M`
116
117 Zusätzlich kann die Speicherverwaltung mit folgenden Parametern optimiert werden (angepasst für unsere Produktivwerte):
118
119 ```ini
120 #Optimierung Speicherverteilung
121 JAVA_OPTS="$JAVA_OPTS -XX:ReservedCodeCacheSize=256m -XX:NewRatio=6"
122 #Optimierung GarbageCollection
123 JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC -XX:-UseCodeCacheFlushing"
124 ```
125
126 Diese sind am Ende der Datei zu ergänzen.