servir toutes les demandes via un proxy * sauf * une requête spécifique

11

J'ai ce qui suit dans mon 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>

Cela fonctionne bien car toutes les demandes de http://foo.org sont servies à partir du port 5012 à l'aide d'un serveur Web différent. Cependant, je veux servir uniquement http://foo.org/lib via Apache à partir du port 80. Comment dois-je procéder? L'ajout des lignes suivantes à la conf n'aide pas

Alias /lib /path/to/lib

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

Réponses:

18

Vous pouvez éviter le proxy pour un emplacement spécifique en disant mod_proxyde l'ignorer avec un !pour une destination:

ProxyPass        /lib !
ProxyPass        / http://127.0.0.1:5012/
ProxyPassReverse / http://127.0.0.1:5012/
Shane Madden
la source
impressionnant! c'était aussi simple que ça! J'ai essayé NoProxyet ProxyMatch with various regexpsen vain. Merci.
punkish