【发布时间】:2018-09-07 06:06:35
【问题描述】:
考虑到我在 Tomcat 中部署了多个应用程序。我曾计划对特定应用程序进行维护。所以我想阻止对该特定应用程序的请求并重定向到一个静态页面,通知用户它正在计划维护中。
用tomcat配置实现这个,有可能吗? 任何帮助将不胜感激。 谢谢!
【问题讨论】:
标签: java tomcat deployment maintenance maintenance-plan
考虑到我在 Tomcat 中部署了多个应用程序。我曾计划对特定应用程序进行维护。所以我想阻止对该特定应用程序的请求并重定向到一个静态页面,通知用户它正在计划维护中。
用tomcat配置实现这个,有可能吗? 任何帮助将不胜感激。 谢谢!
【问题讨论】:
标签: java tomcat deployment maintenance maintenance-plan
我没有在其他地方看到的解决方案依赖于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匹配。
您了解您需要$CATALINA_HOME/webapps directory 中的/maintenance/index.html 文件
【讨论】: