Benötigen Proxypass-Direktiven eine ProxyPassReverse-Direktive?

20

Benötigen alle ProxyPass-Direktiven eine ProxyPassReverse-Direktive?

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

Ich habe dieses Snippet gesehen und verstehe, dass der gesamte Datenverkehr an foo.example.comfoo.example.com:8080 weitergeleitet wird. Was macht die zweite Zeile?

theTuxRacer
quelle

Antworten:

15

Mit dieser Anweisung kann Apache die URL in den Headern "Location", "Content-Location" und "URI" für HTTP-Umleitungsantworten anpassen .

Angenommen, der lokale Server hat die Adresse http://example.com/ . dann

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

bewirkt nicht nur, dass eine lokale Anforderung für http://example.com/mirror/foo/bar intern in eine Proxyanforderung für http://backend.example.com/bar konvertiert wird (die Funktionalität, die ProxyPass hier bereitstellt). Es kümmert sich auch um Weiterleitungen, die der Server backend.example.com sendet: Wenn http://backend.example.com/bar von ihm an http://backend.example.com/quux weitergeleitet wird, passt Apache dies an http: / an. /example.com/mirror/foo/quux, bevor die HTTP-Umleitungsantwort an den Client weitergeleitet wird. Beachten Sie, dass der zum Erstellen der URL verwendete Hostname in Bezug auf die Einstellung der UseCanonicalName-Direktive ausgewählt wird.

alvosu
quelle