У меня есть глобальное правило proxypass в httpd.conf
правила на глобальном уровне
ProxyPass /test/css http://myserver:7788/test/css
ProxyPassReverse /test/css http://myserver:7788/test/css
и у меня есть виртуальный хост
Listen localhost:7788
NameVirtualHost localhost:7788
<VirtualHost localhost:7788>
Alias /test/css/ "C:/jboss/server/default/deploy/test.ear/test-web-app.war/css/"
</VirtualHost>
Я хотел бы отключить все глобальные правила прокси-доступа, применяемые на этом виртуальном хосте? NoProxy, похоже, не работает.
(Причина, по которой я хотел бы это сделать, заключается в том, что у меня есть следующие глобальные правила, которые создают цикл прокси 502, если они применяются в этом виртуальном хосте.
#pass all requests to application server
ProxyPass /test http://localhost:8080/test
ProxyPassReverse /test http://localhost:8080/test
)
Что я пытаюсь сделать, так это обслуживать весь статический контент (например, css) с помощью apache, по-прежнему проксируя все остальные запросы на сервер приложений.
В vhost попробуйте что-нибудь вроде этого
<VirtualHost localhost:7788>
ProxyPass /test/css !
Alias /test/css/ "C:/jboss/server/default/deploy/test.ear/test-web-app.war/css/"
</VirtualHost>
В !
говорит не проксировать этот путь. Попробуйте ...?
Вы также можете попробовать ProxyRequests отключен в конфигах вашего vhost.
Предполагая, что я понимаю, что вы пытаетесь сделать, я бы избавился от прокси-файлов и использовал блок location или locationmatch для перехвата запросов на css. Я бы поместил это в конфигурацию основного сайта apache.
Я предполагаю, что вы либо проксируете, либо используете коннектор AJP для Jboss. Поместите это после вашего блока местоположения. Вы можете разместить здесь свой прокси-пропуск в jboss. Затем вы должны установить корень документа Apache в верхнюю часть вашего каталога war. Вероятно, вы также захотите сохранить свой псевдоним от виртуального хоста.
Немного подумав, это может быть проще
поместите это в основной http.conf вне любых виртуальных хостов
Псевдоним / test / css / "C: /jboss/server/default/deploy/test.ear/test-web-app.war/css/" Разрешить заказ, запретить Разрешить от всех
Я предполагаю, что вы запускаете все это (Jboss, apache) на одном сервере. Обратите внимание, что вы можете изменить путь в блоке каталога на каталог test-web-app.war и добавить другие псевдонимы, если у вас есть другие вещи, которые вы хотите, чтобы Apache обслуживал.
Вы также можете настроить свой Proxypass на Jboss, чтобы у вас был один для любых каталогов, которые вы хотите, чтобы JBoss обрабатывал .. Может сработать просто разместить его после указанного выше блока каталогов