Что такое установка Ideal 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 и т.д... Я не уверен, как это сделать.

У меня есть папка 'assets' (т.е. js/css) и images в webroot (в той же директории, что и WEB-INF), поэтому я предполагаю, что мне нужно какое-то соответствие /images а также /assets что говорит "не передавай это Tomcat"??

Любая помощь / предложения / комментарии по текущей настройке с благодарностью.

Кстати, я использую:
apache2 - 2.2.9-10
Tomcat - 5.5.29

2 ответа

Решение

P в вашем rewriterule - прокси

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !^(images|assets)
RewriteRule ^(.*) ajp://localhost:8009$1 [P,L]

Если вы хотите сказать, что вещи по пути http://localhost/static/* должны обслуживаться из Apache, то вы можете установить RewriteCond перед вашим правилом для захвата всего, что не имеет URI, как /static/* и пересылка на Tomcat через AJP, по существу, оставляя /static/* в одиночку для обслуживания из DocRoot или Alias ​​и т. д.

Например:

RewriteCond %{REQUEST_URI} !\/static\/.* [NC]
RewriteRule ^(.*) ajp://localhost:8009$1 [P,L] 
Другие вопросы по тегам