Назад | Перейти на главную страницу

Что такое идеальная установка Apache Tomcat с apache, обслуживающим статические ресурсы?

Хорошо, этот вопрос задают мне все время: "Как лучше всего подключить 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]