Qual é o uso da Diretriz ProxyPassReverse?

4

Definição do apache.org diz:

This directive lets Apache httpd adjust the URL in the Location, Content-Location and URI headers on HTTP redirect responses. This is essential when Apache httpd is used as a reverse proxy (or gateway) to avoid bypassing the reverse proxy because of HTTP redirects on the backend servers which stay behind the reverse proxy.

Only the HTTP response headers specifically mentioned above will be rewritten. Apache httpd will not rewrite other response headers, nor will it by default rewrite URL references inside HTML pages. This means that if the proxied content contains absolute URL references, they will bypass the proxy. To rewrite HTML content to match the proxy, you must load and enable mod_proxy_html.

path is the name of a local virtual path; url is a partial URL for the remote server. These parameters are used the same way as for the ProxyPass directive.

Alguém por favor pode me explicar como funciona? Em geral, o que esta diretiva faz?

    
por SnowmanOnFire 30.04.2016 / 19:17

1 resposta

3

Se o servidor realmente manipular uma solicitação fizer um redirecionamento para uma URL diferente nesse servidor, a diretiva ProxyPassReverse irá reescrever a URL em termos do servidor proxy reverso. Por exemplo, conforme observado na documentação do Apache, se:

 http://reverseproxy.com/mirror/foo/bar

é enviado (proxied reverso) para

 http://backend.example.com/bar

para manipulação, mas no servidor back-end é determinado que o URL correto deveria ter sido quux , ou seja, que a solicitação deve ser redirecionada para

 http://backend.example.com/quux

a diretiva ProxyPassReverse reescreve a URL (no proxy reverso) para

 http://reverseproxy.com/mirror/foo/quux

antes de encaminhar a resposta de redirecionamento HTTP para o cliente. Dessa forma, o cliente só sabe sobre o servidor proxy reverso, mas pode, ainda assim, fazer a solicitação necessária para a URL correta de http://reverseproxy.com/mirror/foo/quux , que será, então, invertida com proxy para o servidor de backend e tratada normalmente. Em suma, apenas permite que o proxy reverso retorne os cabeçalhos URI corretos nas respostas de redirecionamento HTTP.

    
por 30.04.2016 / 22:07