如何配置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上找到。