atender a todos os pedidos via proxy *, exceto * um específico

11

Eu tenho o seguinte no meu 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>

Isso funciona bem, pois todas as solicitações do http://foo.org são atendidas da porta 5012 usando um servidor da web diferente. No entanto, quero servir apenas http://foo.org/lib via Apache a partir da porta 80. Como faço isso? Adicionar as seguintes linhas ao conf não ajuda

Alias /lib /path/to/lib

<Directory "/path/to/lib">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
punkish
fonte

Respostas:

18

Você pode evitar o proxy para um local específico dizendo mod_proxypara ignorá-lo com um !para um destino:

ProxyPass        /lib !
ProxyPass        / http://127.0.0.1:5012/
ProxyPassReverse / http://127.0.0.1:5012/
Shane Madden
fonte
impressionante! foi assim tão fácil! Eu tentei NoProxye ProxyMatch with various regexpssem sucesso. Obrigado.
punk 26/02/12