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

时间:2018-03-28 13:55:12

标签: java tomcat deployment maintenance maintenance-plan

考虑到我在Tomcat中部署了多个应用程序。我曾计划为特定应用程序进行维护。所以我想阻止对该特定应用程序的请求并重定向到静态页面,通知用户它正处于计划维护状态。

要使用tomcat配置实现这一点,是否可能? 任何帮助将不胜感激。 谢谢!

1 个答案:

答案 0 :(得分:2)

我的解决方案,我还没有看到其他地方,依赖于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。相反,要隐藏一个战争和目录仍在那里的应用程序,它将与CONTEXT_PATH匹配。

您了解在/maintenance/index.html

中需要$CATALINA_HOME/webapps directory个文件