我们有一个现有的情况,我们有 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 吗?