Les directives Proxypass nécessitent-elles une directive ProxyPassReverse?

20

Toutes les directives ProxyPass nécessitent-elles une directive ProxyPassReverse?

ProxyPass / http://foo.example.com:8080/  
ProxyPassReverse / http://www.example.com/

J'ai vu cet extrait foo.example.comde code et je comprends que tout le trafic entrant est dirigé vers foo.example.com:8080. Que fait la deuxième ligne?

theTuxRacer
la source

Réponses:

15

Cette directive permet à Apache d'ajuster l'URL dans les en-têtes Location, Content-Location et URI sur les réponses de redirection HTTP .

Par exemple, supposons que le serveur local ait l'adresse http://example.com/ ; ensuite

ProxyPass /mirror/foo/ http://backend.example.com/
ProxyPassReverse /mirror/foo/ http://backend.example.com/
ProxyPassReverseCookieDomain backend.example.com public.example.com
ProxyPassReverseCookiePath / /mirror/foo/

entraînera non seulement une demande locale pour que http://example.com/mirror/foo/bar soit convertie en interne en une demande de proxy en http://backend.example.com/bar (la fonctionnalité fournie par ProxyPass ici). Il s'occupe également des redirections que le serveur backend.example.com envoie: lorsque http://backend.example.com/bar est redirigé par lui vers http://backend.example.com/quux Apache ajuste cela à http: / /example.com/mirror/foo/quux avant de transmettre la réponse de redirection HTTP au client. Notez que le nom d'hôte utilisé pour construire l'URL est choisi en fonction du paramètre de la directive UseCanonicalName.

alvosu
la source