Хорошо, этот вопрос задают мне все время: "Как лучше всего подключить Tomcat через apache". Но я до сих пор не нашел окончательного ответа и, возможно, его нет, но я просто ищу жизнеспособную и высокопроизводительную установку. Такую часть документации я прочитал со ссылками на статьи от 2005 года и старше. Ищу решение 2010 года :)
У меня есть текущая настройка (не созданная мной), в которой используется mod_rewrite для перезаписи всего трафика с apache на tomcat, используя:
RewriteRule ^(.*) ajp://localhost:8009$1 [P,L]
У нас есть одно приложение как приложение ROOT в tomcat. Итак, сейчас я использую mod_rewrite для отправки запросов через ajp (отличается ли это от mod_proxy_ajp ??). Есть ли причины, по которым это может быть менее чем удовлетворительно?
Также, Я хочу, чтобы Apache обслуживал статические ресурсы чтобы снять некоторую нагрузку с Tomcat, чтобы я мог легко использовать mod_expires / deflate и т. д. Я не уверен, как это сделать.
У меня есть папка «активы» (например, js / css) и «изображения» в корневом веб-каталоге (тот же каталог, что и WEB-INF), поэтому я предполагаю, что мне нужно какое-то совпадение по /images
и /assets
что говорит "не передавайте это Tomcat" ??
Любая помощь / предложения / комментарии по текущей настройке приветствуются.
кстати, я использую:
apache2 - 2.2.9-10
Tomcat - 5.5.29
Если вы хотите сказать, что на пути http: // локальный / статический /* для обслуживания из Apache, тогда вы можете установить RewriteCond перед своим правилом, чтобы захватывать все, что не имеет URI как / static / *, и пересылать на Tomcat через AJP, по существу оставляя / static / * только для обслуживания из DocRoot или псевдонима и т. д.
Например:
RewriteCond %{REQUEST_URI} !\/static\/.* [NC]
RewriteRule ^(.*) ajp://localhost:8009$1 [P,L]
P в вашем rewriterule - это прокси.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !^(images|assets)
RewriteRule ^(.*) ajp://localhost:8009$1 [P,L]