确定这个问题一直问我知道:“通过Apache连接Tomcat的最佳方式是什么? 但是我还没有find一个明确的答案,也许没有一个,但我只是寻找一个可行的,高性能的设置。 我读过的大量文档引用了2005年以及更早的文章。 我正在寻找2010解决scheme:)
我有一个当前的设置(不是由我创build的),使用mod_rewrite重写从Apache到Tomcat的所有stream量使用:
RewriteRule ^(.*) ajp://localhost:8009$1 [P,L]
我们有一个应用程序作为tomcat中的ROOT应用程序。 所以现在我使用mod_rewrite通过ajp发送请求(与mod_proxy_ajp不同)。 这有什么理由可能不尽如人意?
此外, 我正在寻找让Apache来提供静态资产 ,以便卸载Tomcat的一些负载,所以我可以很容易地使用mod_expires / deflate等…我不确定如何做到这一点。
我在webroot(与WEB-INF相同的目录)中有一个“assets”(即.js / css)和'images'文件夹,所以我假设我需要某种匹配/images和/assets不要把这个传给Tomcat“?
任何帮助/build议/意见目前的设置非常感激。
顺便说一句我正在使用:
apache2 – 2.2.9-10
雄猫 – 5.5.29
重写过程中的P是代理服务器
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !^(images|assets) RewriteRule ^(.*) ajp://localhost:8009$1 [P,L]
如果你想说,pathhttp:// localhost / static / *下的东西要从Apache提供,那么你可以在你的规则之前设置一个RewriteCond来捕获所有不具有URI的东西/ static / *并通过AJP在Tomcat上转发,基本上只剩下/ static / *从DocRoot或Alias等提供。
例如:
RewriteCond %{REQUEST_URI} !\/static\/.* [NC] RewriteRule ^(.*) ajp://localhost:8009$1 [P,L]