如何配置Spring Boot Tomcat

  • 2019 年 10 月 11 日
  • 筆記

1.概述

Spring Boot Web應用程式默認包含預配置的嵌入式Web伺服器。但在某些情況下,我們要修改默認配置以滿足自定義要求。

在本教程中,我們將介紹通過application.properties文件配置Tomcat嵌入式伺服器的一些常見用例。

2.常見的嵌入式Tomcat配置

2.1. 伺服器地址和埠

我們希望更改的最常見配置是埠號

server.port = 80

如果我們不提供server.port 參數,則默認設置為8080。

在某些情況下,我們可能希望設置伺服器應綁定的網路地址。換句話說,我們定義一個伺服器將監聽的IP地址

server.address = my_custom_ip

默認情況下,該值設置為0.0.0.0,允許通過所有IPv4地址進行連接。設置另一個值,例如localhost – 127.0.0.1 – 將使伺服器更具選擇性。

2.2. 錯誤處理

默認情況下,Spring Boot提供標準錯誤網頁。此頁面稱為Whitelabel。它默認啟用,但如果我們不想顯示任何錯誤資訊,我們可以禁用它:

server.error.whitelabel.enabled = false
  • Whitelabel的默認路徑是/error。可以通過設置server.error.path參數來自定義它:
server.error.path = /user-error

還可以設置屬性,以確定顯示有關錯誤的資訊。例如,我們可以包含錯誤消息和堆棧跟蹤:

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

我們的教程Exception Message Handling for REST和Customize Whitelabel Error Page詳細解釋有關Spring Boot中處理錯誤的更多資訊。

2.3. 伺服器連接

當在低資源容器上運行時,我們可能希望減少CPU和記憶體負載。一種方法是限制應用程式可以同時處理的請求數量。相反,我們可以增加此值以使用更多可用資源來獲得更好的性能。

SpringBoot中,我們可以定義 Tomcat工作執行緒的最大數量:

server.tomcat.max-threads= 200

配置Web伺服器時,設置伺服器連接超時也可能很有用。這表示伺服器在連接關閉之前等待客戶端發出請求的最長時間:

server.connection-timeout= 5s

我們還可以定義請求頭的最大大小:

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

請求正文的最大大小:

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

或者整個POST請求的最大大小:

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

2.4. SSL

要在我們的Spring Boot應用程式中啟用SSL支援,我們需要將server.ssl.enabled屬性設置為true,並定義SSL協議:

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

我們要配置保存證書密鑰庫的密碼,類型和路徑:

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

我們還必須定義標識密鑰庫中密鑰的別名:

server.ssl.key-alias=tomcat

有關SSL配置的更多資訊,請訪問:HTTPS using self-signed certificate in Spring Boot。

2.5. Tomcat伺服器訪問日誌

在嘗試統計頁面命中數,用戶會話活動等時,Tomcat訪問日誌非常有用。

要啟用訪問日誌,只需設置:

server.tomcat.accesslog.enabled = true

我們還應該配置其他參數,例如附加到日誌文件的目錄名,前綴,後綴和日期格式:

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. 結論

在本教程中,我們學習了一些常見的Tomcat嵌入式伺服器配置。要查看更多可能的配置,請訪問官方頁面: Spring Boot application properties docs。

與往常一樣,這些示例的源程式碼可以在GitHub上找到。