考虑到我在Tomcat中部署了多个应用程序。我已经计划维护特定的应用程序。因此,我想阻止对该特定应用程序的请求并重定向到静态页面,以通知用户它正在计划的维护中。
要使用tomcat配置来实现此目标,这可能吗?任何帮助将不胜感激。谢谢!
我的解决方案(在其他地方没有看到)依赖于RewriteValve的使用,因此它专用于SO用户。您需要重新启动Tomcat才能激活它。
在以下位置的主机定义中添加阀门$CATALINA_BASE/conf/server.xml:
$CATALINA_BASE/conf/server.xml
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
编辑或(更可能)创建$CATALINA_BASE/conf/Catalina/localhost/rewrite.config具有以下内容的文件:
$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
/maintenance/index.html
$CATALINA_HOME/webapps directory