обслуживать все запросы через прокси * кроме * определенного

11

У меня есть следующее в моем httpd.conf

<VirtualHost *:80>
    ServerName foo.org
    ServerAlias www.foo.org

    <Proxy *>
        Options FollowSymLinks MultiViews
        Order allow,deny
        Allow from all
        AllowOverride All
    </Proxy>

    ProxyPass        / http://127.0.0.1:5012/
    ProxyPassReverse / http://127.0.0.1:5012/
</VirtualHost>

Это работает хорошо, так как все запросы на http://foo.org обслуживаются через порт 5012 с использованием другого веб-сервера. Тем не менее, я хочу обслуживать только http://foo.org/lib через Apache от порта 80. Как мне это сделать? Добавление следующих строк в conf не помогает

Alias /lib /path/to/lib

<Directory "/path/to/lib">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
хулиганское
источник

Ответы:

18

Вы можете избежать прокси для определенного местоположения, указав mod_proxyигнорировать его с !помощью пункта назначения:

ProxyPass        /lib !
ProxyPass        / http://127.0.0.1:5012/
ProxyPassReverse / http://127.0.0.1:5012/
Шейн Мэдден
источник
здорово! это было так просто! Я пытался NoProxyи ProxyMatch with various regexpsбезрезультатно. Спасибо.
Панки