Reescreva URLs com o Apache (para ser usado em combinação com o mod_proxy)

1

Estou usando Apache e mod_proxy para fornecer acesso à Monit GUI sobre HTTP. Até agora, minha configuração é a seguinte:

    ProxyRequests Off
    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>
    ProxyPreserveHost on
    ProxyPass /monit http://localhost:2812/
    ProxyPassReverse /monit http://localhost:2812/

Quando as pessoas acessam http://mywebsite/monit , elas recebem a página inicial do Monit. No entanto, os links retornados pelo Monit têm um caminho absoluto, que quebra o proxy, que é aplicado apenas aos caminhos que começam com /monit . Eu poderia criar um vhost separado apenas para Monit (por exemplo, http://monit.mywebsite ), o que resolveria o problema, mas queria saber se havia outra solução.

Q1: Existe uma maneira de fazer com que o Apache reescreva links no código HTML para preceder qualquer caminho definido na diretiva ProxyPass e ProxyPassReverse ?

Q2: Se acima de não for possível, você vê outra solução diferente da vhost I ** separada mencionada?

    
por Max 24.05.2012 / 12:53

1 resposta

1

EDITAR

Sua configuração de proxy está um pouco incorreta:

deve ser:

ProxyRequests Off
<Proxy *>
        Order deny,allow
        Allow from all
</Proxy>
ProxyPreserveHost on
ProxyPass /monit http://localhost:2812
ProxyPassReverse /monit http://localhost:2812

percebe a diferença? Na sua configuração você remove um / muitos.

você também pode escolher

ProxyPass /monit/ http://localhost:2812/
ProxyPassReverse/ /monit http://localhost:2812/

mas as solicitações para http://mywebsite/monit não funcionariam, apenas para http://mywebsite/monit/ , o que seria inconveniente.

Resposta antiga

Provavelmente, o mod_proxy_html pode fazer o que quiser, mas, até onde eu sei, nunca é a melhor solução ... eu não não sabe Monit mas não existe uma opção para fazer com que ele use apenas caminhos relativos?

    
por 24.05.2012 / 14:57