So konfigurieren Sie Spring Boot Tomcat

1. Übersicht

Spring Boot-Webanwendungen enthalten standardmäßig einen vorkonfigurierten, eingebetteten Webserver. In einigen Situationen möchten wir jedoch die Standardkonfiguration ändern , um benutzerdefinierte Anforderungen zu erfüllen.

In diesem Lernprogramm werden einige häufig verwendete Anwendungsfälle für die Konfiguration des eingebetteten Tomcat-Servers über die Datei application.properties erläutert.

2. Allgemeine eingebettete Tomcat-Konfigurationen

2.1. Serveradresse und Port

Die häufigste Konfiguration, die wir möglicherweise ändern möchten, ist die Portnummer :

server.port=80

Wenn wir den Parameter server.port nicht angeben, ist er standardmäßig auf 8080 eingestellt .

In einigen Fällen möchten wir möglicherweise eine etwork-Adresse festlegen, an die der Server gebunden werden soll. Mit anderen Worten, wir definieren eine IP-Adresse, unter der unser Server abhört :

server.address=my_custom_ip

Standardmäßig ist der Wert auf 0.0.0.0 eingestellt, wodurch eine Verbindung über alle IPv4-Adressen möglich ist. Wenn Sie einen anderen Wert festlegen, z. B. localhost - 127.0.0.1 -, wird der Server selektiver.

2.2. Fehlerbehandlung

Standardmäßig bietet Spring Boot eine Standardfehler-Webseite . Diese Seite heißt Whitelabel . Es ist standardmäßig aktiviert, aber wenn wir keine Fehlerinformationen anzeigen möchten, können wir es deaktivieren:

server.error.whitelabel.enabled=false

Der Standardpfad zu einem Whitelabel ist / error . Wir können es anpassen, indem wir den Parameter server.error.path festlegen :

server.error.path=/user-error

Wir können auch Eigenschaften festlegen, die bestimmen, welche Informationen über den Fehler angezeigt werden. Zum Beispiel können wir die Fehlermeldung und den Stack-Trace einschließen:

server.error.include-exception=true server.error.include-stacktrace=always

In unseren Tutorials Exception Message Handling für REST und Customize Whitelabel Error Page erfahren Sie mehr über die Behandlung von Fehlern in Spring Boot.

2.3. Serververbindungen

Wenn Sie auf einem Container mit geringen Ressourcen arbeiten, möchten wir möglicherweise die CPU- und Speicherlast verringern. Eine Möglichkeit, dies zu tun, besteht darin, die Anzahl der gleichzeitigen Anforderungen zu begrenzen, die von unserer Anwendung verarbeitet werden können. Umgekehrt können wir diesen Wert erhöhen, um mehr verfügbare Ressourcen zu verwenden und eine bessere Leistung zu erzielen.

In Spring Boot können wir die maximale Anzahl von Tomcat-Worker-Threads definieren:

server.tomcat.max-threads=200

Bei der Konfiguration eines Webservers kann es auch hilfreich sein, das Zeitlimit für die Serververbindung festzulegen . Dies gibt die maximale Zeit an, die der Server nach dem Herstellen der Verbindung auf die Anforderung des Clients wartet, bevor die Verbindung geschlossen wird:

server.connection-timeout=5s

Wir können auch die maximale Größe eines Anforderungsheaders definieren:

server.max-http-header-size=8KB

Die maximale Größe eines Anforderungshauptteils:

server.tomcat.max-swallow-size=2MB

Oder eine maximale Größe der gesamten Postanfrage:

server.tomcat.max-http-post-size=2MB

2.4. SSL

Um die SSL-Unterstützung in unserer Spring Boot-Anwendung zu aktivieren, müssen Sie die Eigenschaft server.ssl.enabled auf true setzen und ein SSL-Protokoll definieren:

server.ssl.enabled=true server.ssl.protocol=TLS

Wir sollten auch das Passwort, den Typ und den Pfad zum Schlüsselspeicher konfigurieren, in dem sich das Zertifikat befindet:

server.ssl.key-store-password=my_password server.ssl.key-store-type=keystore_type server.ssl.key-store=keystore-path

Außerdem müssen wir den Alias ​​definieren, der unseren Schlüssel im Schlüsselspeicher identifiziert:

server.ssl.key-alias=tomcat

Weitere Informationen zur SSL-Konfiguration finden Sie in unserem HTTPS-Zertifikat mit selbstsigniertem Zertifikat im Spring Boot-Artikel.

2.5. Tomcat Server-Zugriffsprotokolle

Tomcat-Zugriffsprotokolle sind sehr nützlich, wenn Sie versuchen, die Anzahl der Seitentreffer, die Aktivität von Benutzersitzungen usw. zu messen.

Um Zugriffsprotokolle zu aktivieren, legen Sie einfach Folgendes fest:

server.tomcat.accesslog.enabled=true

Wir sollten auch andere Parameter wie Verzeichnisname, Präfix, Suffix und Datumsformat konfigurieren, die an Protokolldateien angehängt werden:

server.tomcat.accesslog.directory=logs server.tomcat.accesslog.file-date-format=yyyy-MM-dd server.tomcat.accesslog.prefix=access_log server.tomcat.accesslog.suffix=.log

3. Fazit

In diesem Tutorial haben wir einige gängige Konfigurationen für eingebettete Tomcat- Server kennengelernt. Weitere mögliche Konfigurationen finden Sie auf der offiziellen Seite mit den Eigenschaften der Spring Boot-Anwendung.

Wie immer ist der Quellcode für diese Beispiele auf GitHub verfügbar.