Java 如何使spring boot嵌入式tomcat返回200 OK作为基本url?
我的应用部署在Java 如何使spring boot嵌入式tomcat返回200 OK作为基本url?,java,spring,spring-mvc,spring-boot,Java,Spring,Spring Mvc,Spring Boot,我的应用部署在http://123.87.65.23:8080。上下文路径是在application.properties中配置的/myapp。所以如果我访问http://123.87.65.23:8080,我得到404。但是如果我访问http://123.87.65.23:8080/myapp/health,我得到了预期的200英镑 我们的运营团队监控基本url(http://123.87.65.23:8080)表示200正常。 我有两个选择: 当我点击http://123.87.65.23:
http://123.87.65.23:8080
。上下文路径是在application.properties
中配置的/myapp
。所以如果我访问http://123.87.65.23:8080
,我得到404。但是如果我访问http://123.87.65.23:8080/myapp/health
,我得到了预期的200英镑
我们的运营团队监控基本url(http://123.87.65.23:8080
)表示200正常。
我有两个选择:
http://123.87.65.23:8080
。无需答复http://123.87.65.23:8080
至http://123.87.65.23:8080/myapp/health
在我的Spring Boot应用程序中注意:我使用的是嵌入式tomcat。因此,更改server.xml的选项不适用
我不知道如何做这两个选项。在tomcat容器中,如果您想使用根URL,您的应用程序应该部署到名为“ROOT”而不是“myapp”的目录中。我猜您的Dispatcherservlet可能配置为处理对/health的请求,您只需处理/ 或者你有一个控制器,映射到/health。
如果在
.properties
文件中设置contextPath
属性,那么Spring将执行它应该执行的操作,所有内容都将移动到那里
如果您将应用程序打包为.war
并在外部服务器中运行,那么您可以设置该服务器,将根请求重定向到Spring Boot应用程序中的任何URL
如果要将应用程序打包为可运行的.jar
和嵌入式服务器,并且希望将上下文路径
保留在.properties
级别,则
a) 您仍然需要某种外部服务器,它可以捕获对root用户的请求并重定向到Spring引导应用程序
b) 您需要设置两个不同的DispatcherServlets
,其中一个的contextPath
是/myapp
,另一个是/code>,它将重定向到Spring Boot应用程序
然而,最简单的解决方案是删除contextPath
,只需在每个控制器的@RequestMapping
前面加上/myapp
,使用management.context path
将所有management
端点移动到/myapp
,并编写一个映射到/
的@Controller
方法,重定向到健康端点。如果您想在http://123.87.65.23:8080
请求,在webapps文件夹中需要一个名为ROOT.war
的应用程序
所以http://123.87.65.23:8080
和http://123.87.65.23:8080/myapp
是两种不同的应用程序
我建议你有两个选择:
将应用程序部署为http://123.87.65.23:8080
(ROOT.war)
使用一些代理服务器,如nginx或apache。您可以将代理服务器配置为将所有根请求重定向到您的应用程序
以下是nginx的一些示例:
或者直接返回200:
location / {
return 200;
}
我正在使用嵌入式tomcat。所以使用root.war不是我的选择
location / {
return 200;
}