1

我们有一个现有的情况,我们有 Apache 2.0 HTTPD 作为后端 tomcat 集群的负载平衡器,使用 mod_jk 1.2 在两者之间进行通信。应用程序本身存储在 tomcat 服务器上,因此所有请求(甚至是图像、css 等)都通过虚拟主机配置中的以下内容传递到 tomcat:

JkMount /* worker-name

虚拟主机没有定义 DocumentRoot,因为所有流量都通过管道流向 tomcat。

我们想开始直接从 Apache 提供静态内容(我知道这是一个激进的想法)。鉴于我们的应用程序路径结构,区分静态内容和动态内容的唯一方法是请求路径的文件扩展名。因此,例如,所有以 .jpg、.css、.ico 等结尾的请求都不会通过 JkMount 传递,而是从 DocumentRoot 提供。

这就是上下文。我的问题是,如何配置虚拟主机,以便所有与给定模式匹配的请求(特别是我希望从 apache 提供的模式)都从 DocumentRoot 提供,而所有其他请求都传递给 tomcat?

这可以用正则表达式来完成JkMount吗?JkMount这么灵活吗?如果没有,我可以使用 mod_rewrite 吗?

4

1 回答 1

4

您可以使用 JkUnMount 指示某些请求未由 mod_jk 处理。我见过使用文件扩展名和路径的例子:

JkMount /* worker-name
JkUnMount /*.jpg worker-name
JkUnMount /images/* worker-name

请参阅此处了解更多信息。

于 2009-06-30T15:41:12.657 回答