As Diretivas Proxypass precisam de uma Diretiva ProxyPassReverse?

20

Todas as diretivas ProxyPass precisam de uma diretiva ProxyPassReverse?

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

Eu vi esse trecho e entendo que todo o tráfego foo.example.comrecebido é proxy para foo.example.com:8080. O que a segunda linha faz?

theTuxRacer
fonte

Respostas:

15

Essa diretiva permite que o Apache ajuste a URL nos cabeçalhos Location, Location-Location e URI nas respostas de redirecionamento HTTP .

Por exemplo, suponha que o servidor local tenha o endereço http://example.com/ ; então

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

não apenas fará com que uma solicitação local para o http://example.com/mirror/foo/bar seja convertida internamente em uma solicitação de proxy para http://backend.example.com/bar (a funcionalidade que o ProxyPass fornece aqui). Ele também cuida dos redirecionamentos que o servidor backend.example.com envia: quando http://backend.example.com/bar é redirecionado por ele para http://backend.example.com/quux O Apache ajusta isso para http: / /example.com/mirror/foo/quux antes de encaminhar a resposta de redirecionamento HTTP para o cliente. Observe que o nome do host usado para construir a URL é escolhido em relação à configuração da diretiva UseCanonicalName.

alvosu
fonte