Apache mod_jk 取代 mod_rewrite 规则

Apache mod_jk 取代 mod_rewrite 规则

我们在 Tomcat 6.0 实例前有一个稍微复杂的 Apache 2.2 设置。主 Tomcat webapp 部署在:

/opt/tomcat/webapps/ROOT

但我们也有定期更新的静态内容。我们不想强制构建和部署 Web 应用,因此这些内容单独存储在以下文件夹中:

/opt/tomcat/webapps/css
/opt/tomcat/webapps/foo
/opt/tomcat/webapps/bar

为了从 Apache 处理这个问题,我们使用 mod_rewrite 并且规则如下所示:

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^/css/(.*)$ - [L]

RewriteCond ROOT/%{REQUEST_FILENAME} -f
RewriteRule ^/css/(.*)$ ROOT/$1 [L]

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)\.(jpg|png|html|js)$ - [L]

RewriteCond ROOT/%{REQUEST_FILENAME} -f
RewriteRule ^(.*)\.(jpg|png|html|js)$ - [L]

RewriteRule ^/(.*)$ http://localhost:8080/$1 [P,L]
ProxyPassReverse / http://localhost:8080/

我现在认为我可能想要开始使用 mod_jk 并且我有两个问题:

  1. 是否值得使用 mod_jk?我不需要负载平衡。
  2. 是否有可能处理我概述的静态内容被引用为“http://www.example.com/css/foo.css“,但我们不知道它是位于 Tomcat webapp 中还是位于某个静态文件夹中。

答案1

您为什么考虑使用 mod_jk?

如果要使用 ajp 通信,为了加快向 tomcat 的传输速度,为什么不看看 mod_proxy_ajp?

您只需将 tomcat 重写规则更改为:-

RewriteRule ^/(.*)$ ajp://localhost:8080/$1 [P,L]

相关内容