O Apache ProxyPass não parece estar fazendo proxy de conteúdo do host remoto

O Apache ProxyPass não parece estar fazendo proxy de conteúdo do host remoto

Estou tentando criar um proxy em uma URL do meu site "mestre" para um site remoto, "leste", mas fico preso em um loop de redirecionamento. Este não é o comportamento que eu esperava - entendi que o ProxyPass reescreveria o conteúdo para o URL, mas acho que está agindo como se estivesse redirecionando para o host "mestre".

O arquivo de configuração aplicado é bastante simples:

user@master:/etc/apache2/conf-enabled# cat multisite_proxy.conf
<Location /prod_east>
        ProxyPass http://east.domain.com/prod_east
        ProxyPassReverse http://east.domain.com/prod_east
</Location>

usando cURL, minha saída é como:

user@master:~# curl -IL https://master.domain.com/prod_east/
HTTP/1.1 302 Found
Date: Thu, 17 Dec 2020 22:58:41 GMT
Server: Apache/2.4.38 (Debian)
Location: https://master.domain.com//prod_east/
Content-Type: text/html; charset=iso-8859-1

...

curl: (47) Maximum (50) redirects followed

Os logs do Apache no leste estão mostrando as solicitações do cURL.

Se eu navegar, http://east.domain.com/prod_eastsou redirecionado para a página de login de um aplicativo (o que espero). Examinando isso com cURL, vejo:

user@master:~# curl -IL http://east.domain.com/prod_east
HTTP/1.1 302 Found
Date: Thu, 17 Dec 2020 23:17:38 GMT
Server: Apache/2.4.38 (Debian)
Location: https://east.domain.com//prod_east
Content-Type: text/html; charset=iso-8859-1

HTTP/1.1 302 Found
Date: Thu, 17 Dec 2020 23:17:38 GMT
Server: Apache
Location: https://east.domain.com/prod_east/subpath/
Content-Type: text/html; charset=iso-8859-1

HTTP/1.1 302 FOUND
Date: Thu, 17 Dec 2020 23:17:38 GMT
Server: Apache
Vary: Cookie
Cache-Control: no-cache
**Location: /prod_east/subpath/login.py?_origtarget=index.py**
Content-Type: text/html; charset=UTF-8

A última entrada Location: me fez pensar: está dizendo ao cliente para redirecionar para /prod_east/, mas espero que isso seja solicitado por east.domain.comcausa das regras do ProxyPass.

O módulo Proxy está habilitado, assim como o módulo de reescrita.

Qualquer ajuda? Claramente não estou entendendo alguma coisa aqui...

Desde já, obrigado.

Responder1

O problema aqui era que o site "leste" estava forçando um redirecionamento para HTTPS e o Apache não estava configurado para fazer proxy de conteúdo TLS. Depois de ativar o SSLProxy em "master" e atualizar multisite_proxy.confpara se referir a https (ignorando o redirecionamento HTTP-> HTTPS), isso agora está funcionando.

informação relacionada