Come configurare Spring Boot Tomcat

1. Panoramica

Le applicazioni Web Spring Boot includono un server Web integrato preconfigurato per impostazione predefinita. In alcune situazioni, tuttavia, vorremmo modificare la configurazione predefinita per soddisfare i requisiti personalizzati.

In questo tutorial, esamineremo alcuni casi d'uso comuni per la configurazione del server integrato Tomcat tramite il file application.properties .

2. Configurazioni Tomcat incorporate comuni

2.1. Indirizzo e porta del server

La configurazione più comune che potremmo voler modificare è il numero di porta :

server.port=80

Se non forniamo il parametro server.port , è impostato su 8080 per impostazione predefinita .

In alcuni casi, potremmo voler impostare un indirizzo di rete a cui il server dovrebbe legarsi. In altre parole, definiamo un indirizzo IP dove il nostro server ascolterà :

server.address=my_custom_ip

Per impostazione predefinita, il valore è impostato su 0.0.0.0 che consente la connessione tramite tutti gli indirizzi IPv4. L'impostazione di un altro valore, ad esempio, localhost - 127.0.0.1 - renderà il server più selettivo.

2.2. Gestione degli errori

Per impostazione predefinita, Spring Boot fornisce una pagina Web di errore standard . Questa pagina è chiamata Whitelabel . È abilitato per impostazione predefinita, ma se non vogliamo visualizzare alcuna informazione di errore possiamo disabilitarlo:

server.error.whitelabel.enabled=false

Il percorso predefinito per una Whitelabel è / error . Possiamo personalizzarlo impostando il parametro server.error.path :

server.error.path=/user-error

Possiamo anche impostare proprietà che determineranno quali informazioni sull'errore vengono presentate. Ad esempio, possiamo includere il messaggio di errore e la traccia dello stack:

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

I nostri tutorial Gestione dei messaggi di eccezione per REST e Personalizza la pagina degli errori Whitelabel spiegano di più sulla gestione degli errori in Spring Boot.

2.3. Connessioni al server

Quando si esegue su un contenitore di risorse in esaurimento, è possibile ridurre il carico di CPU e memoria. Un modo per farlo è limitare il numero di richieste simultanee che possono essere gestite dalla nostra applicazione. Al contrario, possiamo aumentare questo valore per utilizzare più risorse disponibili per ottenere prestazioni migliori.

In Spring Boot, possiamo definire la quantità massima di thread di lavoro Tomcat:

server.tomcat.max-threads=200

Quando si configura un server web, potrebbe anche essere utile impostare il timeout di connessione al server . Questo rappresenta il tempo massimo che il server attenderà prima che il client effettui la richiesta dopo la connessione prima che la connessione venga chiusa:

server.connection-timeout=5s

Possiamo anche definire la dimensione massima di un'intestazione di richiesta:

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

La dimensione massima del corpo di una richiesta:

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

O una dimensione massima dell'intera richiesta di post:

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

2.4. SSL

Per abilitare il supporto SSL nella nostra applicazione Spring Boot, dobbiamo impostare la proprietà server.ssl.enabled su true e definire un protocollo SSL:

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

Dovremmo anche configurare la password, il tipo e il percorso dell'archivio chiavi che contiene il certificato:

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

E dobbiamo anche definire l'alias che identifica la nostra chiave nell'archivio chiavi:

server.ssl.key-alias=tomcat

Per ulteriori informazioni sulla configurazione SSL, visita il nostro HTTPS utilizzando il certificato autofirmato nell'articolo Spring Boot.

2.5. Log di accesso al server Tomcat

I log di accesso di Tomcat sono molto utili quando si cerca di misurare il numero di visite alle pagine, l'attività della sessione utente e così via.

Per abilitare i log di accesso, è sufficiente impostare:

server.tomcat.accesslog.enabled=true

Dovremmo anche configurare altri parametri come il nome della directory, il prefisso, il suffisso e il formato della data aggiunti ai file di registro:

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. Conclusione

In questo tutorial, abbiamo appreso alcune configurazioni comuni del server integrato Tomcat . Per visualizzare più configurazioni possibili, visitare la pagina ufficiale della documentazione delle proprietà dell'applicazione Spring Boot.

Come sempre, il codice sorgente di questi esempi è disponibile su GitHub.