提问者:小点点

部署到外部雄猫容器时的Spring引导执行器端口


我有一个Spring Boot应用程序,它部署到一个外部Tomcat容器(不使用嵌入式容器),正在尝试设置执行器。问题是,Tomcat似乎不支持application.properties中的management.port。当我使用嵌入式Tomcat运行Spring Boot时,它工作得很好。

例如,在< code > application . properties 中设置以下内容:

管理.端口=9010

嵌入式容器的工作endpoint

  • http://localhost:9010/health

在端口 8080 上运行的外部容器的非工作终结点

  • http://localhost:9010/health
  • http://localhost:8080/health
  • http://localhost:9010/

在 Tomcat 容器中是否需要特殊配置来公开 Spring 启动执行器endpoint?

我尝试设置一个环境变量MANAGEMENT_PORT。大多数(几乎所有)可用的留档都使用嵌入式Tomcat,因此跟踪这个问题被证明是具有挑战性的。

关于这个答案的第三条评论提供了一些可能的见解:https://stackoverflow.com/a/28689853/2601060,它指向一个GitHub文件,指示如果未设置管理端口,它将与服务器端口相同。


共3个答案

匿名用户

我们不能用外部Tomcat容器指定额外的端口。原因如下:https://github.com/spring-projects/spring-boot/issues/552

唯一的方法是使用上下文路径扩展endpoint,比如“/management”,并对其应用安全性。

匿名用户

是的,如果您的 application.properties 有名为“management.port: 9001”和“server.port:9000”的属性。然后您的应用程序endpoint将部署在端口9000上,执行器endpoint将部署在端口9001上。

所以这取决于我们。我们可以提到同一个端口的两个属性,应用程序将正常工作。

匿名用户

我在当地也有同样的问题,

  • 我通过更换tomcat(重新安装一个新的)修复了它,
  • 也可以通过更改中的默认端口

:)希望有一天能帮到某个人..