考虑到我在Tomcat中部署了多个应用程序。我曾计划为特定应用程序进行维护。所以我想阻止对该特定应用程序的请求并重定向到静态页面,通知用户它正处于计划维护状态。
要使用tomcat配置实现这一点,是否可能? 任何帮助将不胜感激。 谢谢!
答案 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
个文件