一尘不染

如何显示在Tomcat中部署的应用程序的维护页面?

tomcat

考虑到我在Tomcat中部署了多个应用程序。我已经计划维护特定的应用程序。因此,我想阻止对该特定应用程序的请求并重定向到静态页面,以通知用户它正在计划的维护中。

要使用tomcat配置来实现此目标,这可能吗?任何帮助将不胜感激。谢谢!


阅读 415

收藏
2020-06-16

共1个答案

一尘不染

我的解决方案(在其他地方没有看到)依赖于RewriteValve的使用,因此它专用于SO用户。您需要重新启动Tomcat才能激活它。

在以下位置的主机定义中添加阀门$CATALINA_BASE/conf/server.xml

<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />

编辑或(更可能)创建$CATALINA_BASE/conf/Catalina/localhost/rewrite.config具有以下内容的文件:

# for a missing webapp which would be named fewbars
RewriteCond %{REQUEST_PATH} ^/fewbars/.*
RewriteRule ^(.*)$ /maintenance/index.html [R,NC]

# for a deployed webapp named fewbars
RewriteCond %{CONTEXT_PATH} /fewbars
RewriteRule ^(.*)$ /maintenance/index.html [R,NC]

如前所述,行为取决于webapp的状态:如果war文件和目录已被删除,则需要在REQUEST_PATH上进行匹配。相反,要隐藏仍存在war和目录的应用程序,将使用CONTEXT_PATH对其进行匹配。

您了解您需要/maintenance/index.html$CATALINA_HOME/webapps directory

2020-06-16