考虑到我在 Tomcat 中部署了多个应用程序。我曾计划对特定应用程序进行维护。所以我想阻止对该特定应用程序的请求并重定向到静态页面,通知用户它正在进行计划内维护。
用tomcat配置来实现,可以吗? 任何帮助将不胜感激。 谢谢!
最佳答案
我的解决方案,我还没有在其他地方看到,依赖于使用 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 目录
中的 /maintenance/index.html
文件
关于java - 如何显示部署在 Tomcat 中的应用程序的维护页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49536468/