Hoe Spring Boot Tomcat te configureren

1. Overzicht

Spring Boot-webtoepassingen bevatten standaard een vooraf geconfigureerde, ingebouwde webserver. In sommige situaties zouden we dat echter wel willen wijzig de standaardconfiguratie om aan aangepaste vereisten te voldoen.

In deze zelfstudie bekijken we enkele veelvoorkomende gebruiksscenario's voor het configureren van de ingesloten Tomcat-server via de application.properties het dossier.

2. Algemene ingebedde Tomcat-configuraties

2.1. Serveradres en poort

De meest voorkomende configuratie we willen misschien veranderen is het poortnummer:

server.port = 80

Als we het Server poort parameter waarop het is ingesteld 8080 standaard.

In sommige gevallen willen we misschien een netwerkadres instellen waaraan de server moet binden. Met andere woorden, we definiëren een IP-adres waar onze server naar zal luisteren:

server.address = my_custom_ip

Standaard is de waarde ingesteld op 0.0.0.0 waarmee verbinding via alle IPv4-adressen mogelijk is. Een andere waarde instellen, bijvoorbeeld localhost - 127.0.0.1 - zal de server selectiever maken.

2.2. Foutafhandeling

Spring Boot biedt standaard een webpagina met standaardfouten. Deze pagina heet de Wit label. Het is standaard ingeschakeld, maar als we geen foutinformatie willen weergeven, kunnen we het uitschakelen:

server.error.whitelabel.enabled = false

Het standaardpad naar een Wit label is /fout. We kunnen het aanpassen door de server.error.path parameter:

server.error.path = / gebruikersfout

We kunnen ook eigenschappen instellen die bepalen welke informatie over de fout wordt weergegeven. We kunnen bijvoorbeeld het foutbericht en de stacktracering opnemen:

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

Onze tutorials Exception Message Handling for REST en Customize Whitelabel Error Page leggen meer uit over het afhandelen van fouten in Spring Boot.

2.3. Serververbindingen

Als we op een container met weinig middelen draaien, zouden we dat graag willen verlaag de CPU- en geheugenbelasting. Een manier om dat te doen, is door het aantal gelijktijdige verzoeken te beperken dat door onze applicatie kan worden afgehandeld. Omgekeerd kunnen we deze waarde verhogen om meer beschikbare bronnen te gebruiken om betere prestaties te krijgen.

In Spring Boot kunnen we het maximale aantal Tomcat-werkthreads definiëren:

server.tomcat.max-threads = 200

Bij het configureren van een webserver kan het ook handig zijn om stel de time-out voor de serververbinding in. Dit vertegenwoordigt de maximale tijd die de server wacht op de client om zijn verzoek te doen nadat de verbinding is gemaakt, voordat de verbinding wordt verbroken:

server.connection-timeout = 5s

We kunnen ook de maximale grootte van een verzoekheader definiëren:

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

De maximale grootte van een verzoektekst:

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

Of een maximale grootte van het hele postverzoek:

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

2.4. SSL

SSL-ondersteuning inschakelen in onze Spring Boot-applicatie moeten we de server.ssl. ingeschakeld eigendom aan waar en definieer een SSL-protocol:

server.ssl.enabled = echte server.ssl.protocol = TLS

We moeten ook het wachtwoord, het type en het pad configureren naar het sleutelarchief dat het certificaat bevat:

server.ssl.key-store-password = mijn_wachtwoord server.ssl.key-store-type = keystore_type server.ssl.key-store = keystore-pad

En we moeten ook de alias definiëren die onze sleutel identificeert in de sleutelopslag:

server.ssl.key-alias = kater

Voor meer informatie over SSL-configuratie, bezoek ons ​​HTTPS met zelfondertekend certificaat in Spring Boot-artikel.

2.5. Toegangslogboeken van Tomcat-server

Tomcat-toegangslogboeken zijn erg handig bij het meten van het aantal paginatreffers, de activiteit van gebruikerssessies, enzovoort.

Om toegangslogboeken in te schakelen, gewoon instellen:

server.tomcat.accesslog.enabled = waar

We moeten ook andere parameters configureren, zoals mapnaam, voorvoegsel, achtervoegsel en datumnotatie die aan logbestanden wordt toegevoegd:

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

3. Conclusie

In deze zelfstudie hebben we een paar veelvoorkomende dingen geleerd Kater embedded server configuraties. Om meer mogelijke configuraties te zien, bezoek de officiële documentatiepagina van de Spring Boot-applicatie.

Zoals altijd is de broncode voor deze voorbeelden beschikbaar op GitHub.