3

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

用tomcat配置实现这个,有可能吗?任何帮助将不胜感激。谢谢!

4

1 回答 1

3

我的解决方案,我没有在其他地方看到,依赖于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

于 2018-03-28T20:36:59.193 回答