【问题标题】:Problem getting apache to default to a particular JKMount using mod_jk使用 mod_jk 使 apache 默认为特定 JKMount 的问题
【发布时间】:2010-08-16 20:19:47
【问题描述】:
我有一个面向 4 个 tomcat webapps 的 apache 实例,我们称它们为 app1、app2、app3、app4。我正在使用 mod_jk 作为连接器,并且我已经为每个 JKMount 条目设置了 apache,我可以很高兴地点击:
服务器:8080/app1
服务器:8080/app2
服务器:8080/app3
服务器:8080/app4
但我真正想要的是将 app1、app2 和 app3 的所有流量按上述方式处理,但 app4(仅)在以下位置处理:
服务器:8080/
我确信这会很容易,但我想不通。有什么想法吗?
戈登
【问题讨论】:
标签:
apache
tomcat
web-applications
mod-jk
【解决方案1】:
如果我理解正确,您想将 app4 设置为默认网络应用 - 这样它就可以直接作为 server:8080/ 使用
您需要做的就是在 Tomcat 上的 <Host> 中的 Context 元素中将路径设置为 ""。
.这应该工作
<Context docBase="/var/lib/tomcat6/webapps/app4/" path="" reloadable="true>
来自 Tomcat 文档,
如果你指定一个上下文路径
空字符串(“”),您正在定义
此的默认 Web 应用程序
主机,它将处理所有请求
未分配给其他上下文
确保您重新启动 Apache 和 Tomcat 一次以启用更改。
注意:根据 Tomcat 6 文档http://tomcat.apache.org/tomcat-6.0-doc/config/context.html#Introduction,建议不要将其放在 server.xml 中,因为您需要重新启动 Tomcat 才能进行任何更改。
默认的网络应用程序可能是
通过使用名为的文件定义
ROOT.xml
但我自己没有尝试过这个选项。
【解决方案2】:
从 Tomcat 5.5 开始(我不知道早期版本),如果它是 WAR 文件,您可以将 app4 重命名为 ROOT.war,如果它是一个 WAR 文件,则可以重命名为 ROOT/目录。从逻辑上讲,您必须覆盖任何现有的 ROOT.war 或 ROOT/(如果存在)。