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

отключить mod_proxy для подкаталога (apache)

У меня есть apache с одной папкой, используемой для обратного прокси:

<VirtualHost *:80>
 ...
 ProxyPass /site http://server.local:8989/site
 ProxyPassReverse /site http://server.local:8989/site
</VirtualHost *:80>

Как я могу отключить прокси для url's / site / IMAGES / *?

Добавить перед первый ProxyPass:

ProxyPass /site/IMAGES/ !

Увидеть mod_proxy документы для получения полной информации.

Он не был бы доступен в то время, когда вы задали этот вопрос, но если вы используете Apache HTTPD 2.4 или новее, тогда как описано в документации вы можете сделать это с помощью двух блоков местоположения:

<VirtualHost *:80>
  ...
  <Location /site>
    ProxyPass        http://server.local:8989/site
    ProxyPassReverse http://server.local:8989/site
  </Location>
  <Location /site/IMAGES>
    ProxyPass "!"
  </Location>
</VirtualHost>

Блоки местоположения интерпретируются по порядку, поэтому вам нужно поместить блок без прокси после блока с прокси. В качестве альтернативы, если вы хотите сохранить директивы прокси на уровне vhost, ответ, данный fission, работает нормально!

Для моей ситуации этого было недостаточно.
ProxyPass / сайт / ИЗОБРАЖЕНИЯ /!
Я хотел исключить некоторые пути, а не только один такой, я поискал в Интернете, и все говорят о t = что-то вроде этого,
ProxyPass / сайт / ИЗОБРАЖЕНИЯ /!
Это действительно только тогда, когда вы хотите исключить только один путь, отлично работает! но я хотел исключить некоторые пути, а не только один, поэтому я попытался сделать это вот так:
ProxyPass / сайт / ИЗОБРАЖЕНИЯ /!
ProxyPass / site-web /!
Не работает, допустимо обходить только один путь за раз. Итак, спасибо, Gagravarr, я мог делать то, что мне нужно, используя Location с Apache, и я мог ProxyPass исключить некоторые пути, например,
<Location "/admin"> ProxyPass "!" </Location> <Location "/mail"> ProxyPass "!" </Location> <Location "/html"> ProxyPass "!" </Location> <Location "/shared"> ProxyPass "!" </Location> ProxyPreserveHost On ProxyPass / http://193.168.1.3/ ProxyPassReverse / http://192.168.1.3/
Я думаю, это может помочь кому-нибудь в моей ситуации.