Ao usar o proxy reverso, o servidor backend faz 301 de volta ao servidor proxy ou altera o URL

2

Como um exercício de aprendizado para entender mais sobre proxy reverso. Decidi usar meu servidor de nuvem privada como um servidor proxy reverso e tentar ignorar o firewall corporativo (quando estou no trabalho) para permitir acesso ao gmail.

Eu criei a seguinte configuração do Proxy (por favor, não se preocupe com os colchetes):

SSLProxyEngine on
ProxyRequests Off
ProxyVia Off

[Proxy *]
    Order deny,allow
    Deny from all
    Allow from xxx.xxx.xxx
[/Proxy]

ProxyPreserveHost On

ProxyPass /qqq https://www.google.com/accounts/ServiceLogin?service=mail
ProxyPassReverse /qqq https://www.google.com/accounts/ServiceLogin?service=mail

ProxyPass /qqqqq http://mail.google.com/mail
ProxyPassReverse /qqqqq http://mail.google.com/mail

Os resultados da configuração acima são os seguintes:

  1. Quando eu navego para myserver.com/qqq, o servidor de back-end (Google) simplesmente altera o URL e redireciona-me para o google.com. Embora eu tenha "ProxyPreserveHost On"

  2. Quando eu navego para myserver.com/qqqqq, o Google faz 301 de volta ao meu servidor proxy, o que me redireciona novamente para o Google e eu acabo no loop.

Eu li vários posts aqui no stackoverflow, mas não consegui extrair nenhuma informação útil deles:

link

link

link

Minhas perguntas aqui são:

  1. Como impedir que o Google altere o URL e, em vez disso, exiba conteúdo de forma transparente

  2. O que posso fazer para não acabar no loop 301 entre o meu servidor proxy e o Google

Se você acha que eu perdi / omiti / entendi mal alguma coisa, por favor me avise

Obrigado Alex

    
por Community 30.07.2011 / 16:54

1 resposta

2

Eu fiz isso pelo seguinte código. Você pode tentar ...

    ProxyPreserveHost On
    <Proxy *>
            AddDefaultCharset off
            Order deny,allow
            Deny from all
          Allow from all
    </Proxy>

            ProxyPass /google http://www.google.com/
            ProxyHTMLURLMap http://www.google.com /google

    <Location /google>
            ProxyPassReverse /
            ProxyHTMLInterp On
            ProxyHTMLURLMap  /      /google
            RequestHeader    unset  Accept-Encoding
    </Location>
    
por 20.09.2011 / 15:41