Как мне использовать некоторые шаблоны путей из DocumentRoot, а другие — из modjk?
-
21-08-2019 - |
Вопрос
У нас уже есть ситуация, когда Apache 2.0 HTTPD выступает в качестве балансировщика нагрузки для кластера серверных котов, используя mod_jk 1.2 для связи между ними.Сами приложения хранятся на серверах tomcat, поэтому все запросы (даже изображения, CSS и т. д.) передаются tomcat с использованием следующего в конфигурациях виртуального хоста:
JkMount /* worker-name
На виртуальных хостах не определен DocumentRoot, поскольку весь трафик передается по каналу tomcat.
Мы хотели бы начать предоставлять статический контент напрямую из Apache (я знаю, радикальная идея).Учитывая структуру пути нашего приложения, единственный способ отличить статический контент от динамического — это расширение файла запрошенного пути.Так, например, все запросы, заканчивающиеся на .jpg, .css, .ico и т. д., не будут передаваться через JkMount, а будут обслуживаться из DocumentRoot.
Таков контекст.Мой вопрос: как я могу настроить vhost так, чтобы все запросы, соответствующие заданному шаблону (в частности, моему шаблону того, что мы хотим получать от Apache), обслуживались из DocumentRoot, а все остальные передавались tomcat?
Можно ли это сделать с помощью регулярного выражения в JkMount
?Является JkMount
такой гибкий?Если нет, могу ли я использовать mod_rewrite?
Решение
Вы можете использовать JkUnMount, чтобы указать, что определенные запросы не обрабатываются mod_jk.Я видел примеры использования расширений файлов и путей:
JkMount /* worker-name
JkUnMount /*.jpg worker-name
JkUnMount /images/* worker-name
Видеть здесь Чтобы получить больше информации.