簡體   English   中英

Spring Boot + Tomcat 忽略 server.port 屬性?

[英]Spring Boot + Tomcat ignoring server.port property?

我目前正在嘗試通過一些小的配置更改來啟動和運行 Spring Boot 應用程序,但我似乎無法讓端口正確監聽。 tomcat 實例加載的 server.xml 似乎覆蓋了我的 application.properties 文件指定的任何內容。

應用程序屬性:

logging.level.app = TRACE
logging.file = /tmp/my-server.log
server.port = 8081

當我將它部署到我的 /usr/local/tomcat/webapps 時,我可以訪問服務器,但只能在端口 8080 上。它似乎忽略了 server.port 屬性。 我相信服務器正在正確獲取屬性文件,因為日志記錄正確轉到 /tmp/my-server.log

最終目標是讓服務器在 Amazon Elastic Beanstalk 中運行時偵聽我選擇的端口。 我可以更新負載均衡器上的端口,但如果服務器只偵聽它的預配置端口,那沒關系。

提前感謝您的幫助!

OSX Yosemite、Tomcat 8.0.24、Spring Boot v1.2.4

只有在使用嵌入式 Tomcat 時,Spring Boot 屬性(如server.port才會生效。 也就是說,如果您通過在其中執行帶有SpringApplication.run() main方法或通過創建一個可執行 JAR 並使用java -jar啟動它來啟動您的應用程序。

當您將應用程序作為 WAR 存檔部署到獨立的 Tomcat 中時,您必須以傳統方式通過編輯server.xml和其他可能的配置文件來配置 Tomcat。

server.port屬性僅用於嵌入式應用程序服務器。 如果要使用獨立的,則需要在應用程序服務器本身上進行配置。 在 tomcat 的情況下,如果在 server.xml 文件中指定。

如果您想在 AWS Elastic Beanstalk 上運行應用程序,則在創建環境時您可以指定您想要一個 webserver + tomcat。

這樣你就不用擔心端口了。 亞馬遜會為您處理。

可以在配置文件中編輯端口

  1. 找到{Tomcat installation folder}\\conf\\server.xml
  2. 找到類似於以下的語句:
     <!-- Define a non-SSL HTTP/1.1 Connector on port 8180 --> <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />
    或者
    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
  3. 更改端口號:
     <Connector port="8181" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM