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

Отключить правила ProxyPass на виртуальном хосте на apache 2

У меня есть глобальное правило 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 обрабатывал .. Может сработать просто разместить его после указанного выше блока каталогов