【问题标题】:Spring Boot + Tomcat ignoring server.port property?Spring Boot + Tomcat 忽略 server.port 属性?
【发布时间】:2015-10-14 01:12:38
【问题描述】:

我目前正在尝试通过一些小的配置更改来启动并运行 Spring Boot 应用程序,但我似乎无法让端口正确监听。似乎 tomcat 实例加载的 server.xml 覆盖了我的 application.properties 文件指定的任何内容。

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中配置吗???我想是的。
  • 好像没有……看完后:stackoverflow.com/questions/21083170/…docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/…tomcat中好像没有配置端口?
  • 或者也许所有这些都只适用于嵌入式 tomcat?
  • 如果你有独立的tomcat...进入目录...进入conf...进入server.xml ...你会看到连接器...编辑端口号一个带有http1.1的......如果你有弹簧安全......你也可以指定端口......但那是另一次了。

标签: java spring tomcat gradle spring-boot


【解决方案1】:

server.port 等 Spring Boot 属性只有在您使用嵌入式 Tomcat 时才会生效。也就是说,如果您通过执行带有SpringApplication.run()main 方法或通过创建可执行JAR 并以java -jar 启动它来启动应用程序。

当您将应用程序作为 WAR 存档部署到独立 Tomcat 中时,您必须以传统方式通过编辑 server.xml 和可能的其他配置文件来配置 Tomcat。

【讨论】:

    【解决方案2】:

    server.port 属性仅用于嵌入式应用程序服务器。 如果要使用独立的,则需要在应用服务器本身上进行配置。在tomcat的情况下,如果在server.xml文件中指定。

    如果您想在 AWS Elastic Beanstalk 上运行应用程序,则在创建环境时可以指定您希望拥有一个 webserver + tomcat。

    这样您就无需担心端口问题。亚马逊会为您处理。

    【讨论】:

      【解决方案3】:

      可以edit the port in the configuration file:

      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" />
        

      【讨论】:

        猜你喜欢
        • 2023-03-23
        • 1970-01-01
        • 2018-05-04
        • 1970-01-01
        • 2016-06-26
        • 2019-01-28
        • 2017-11-29
        • 2019-07-22
        • 2016-07-29
        相关资源
        最近更新 更多