web-dev-qa-db-fra.com

Exclure un alias de proxypass virtualhost

J'ai suivi la configuration de l'hôte virtuel. Le résultat souhaité est:

  1. Si quelqu'un demande http://test.myserver.com/myapp , Apache le sert depuis/var/www/myapp
  2. Et si http://test.myserver.com/ est demandé, Apache le redirige vers le port 8069.

Le 2ème fonctionne mais le 1er ne l'est pas. Quelqu'un peut-il aider s'il vous plaît!

<VirtualHost *:80>
        ServerName test.myserver.com

        Alias /myapp /var/www/myapp
        <Directory /var/www/myapp>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                Allow from all
        </Directory>

        ProxyPass / http://localhost:8069/
        ProxyPassReverse / http://localhost:8069/

</VirtualHost>
24
user2436428

C'est ainsi que j'ai pu atteindre le résultat souhaité. Voici la configuration de travail où ProxyPassMatch ^/myapp ! a fait l'affaire et à l'exception de (adresse-serveur)/myapp, toutes les demandes sont en cours de proxy vers l'autre serveur qui est open-erp fonctionnant au port 8069:

<VirtualHost *:80>
        ServerName test.myserver.com

        Alias /myapp /var/www/myapp
        <Directory /var/www/myapp>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                Allow from all
        </Directory>

        ProxyPassMatch ^/myapp !
        ProxyPass / http://localhost:8069/
        ProxyPassReverse / http://localhost:8069/


  CustomLog /var/log/Apache2/access.log common
  ErrorLog /var/log/Apache2/error.log

</VirtualHost>
43
user2436428

À la place d'utiliser:ProxyPassMatch ^/myapp ! vous auriez pu simplement ajouter une autre directive ProxyPass avant celle définissant /, comme ceci:

ProxyPass /myapp !
ProxyPass / http://localhost:8069/

Étant donné que ProxyPass respecte la priorité (la première correspondance sera traitée), il sera correctement redirigé vers le répertoire au lieu du proxy.

18
Geoff Martin

dans le cas où vous avez un RewriteCond (ce qui est très probable lorsque vous exécutez un proxy) celui-ci vous fera également plaisir!

<Location /.well-known/acme-challenge/>
  RewriteEngine off
  ProxyPass !
</Location>
1
simUser