
Temos um servidor de aplicativos localizado emhttp://foo.bar.
Ele precisa ser acessado via http://wibble/foo usando proxy reverso.
Eu consegui isso, mas há coisas em http://foo.bar que fazem referência a /
POR EXEMPLO:
/images/blah.jpg
Então, ele está tentando obter http://wibble/images/blah.jpg em vez de
http://wibble/foo/images/blah.jpg
Alguma idéia de como posso inserir o prefixo /foo para qualquer coisa referenciada em / ?
Responder1
mod_proxynuncamodifica o HTML.
Somente os cabeçalhos de resposta HTTP especificamente mencionados acima serão reescritos. O Apache não reescreverá outros cabeçalhos de resposta, nem reescreverá referências de URL dentro de páginas HTML. Isso significa que se o conteúdo proxy contiver referências de URL absolutas, eles ignorarão o proxy. Um módulo de terceiros que examinará o HTML e reescreverá as referências de URL é o mod_proxy_html de Nick Kew.
Responder2
Se você estiver usando o nginx como servidor front-end, poderá usar o HttpSubModule para realizar a substituição. Essencialmente, o nginx deve fazer proxy da solicitação e realizar a substituição no texto retornado. Eu acredito, porém, que você não pode usar isso se tiver compactação no back-end (então, contanto que você tenha compactação no servidor front-end, você estará bem):
Essencialmente: Nginx -> proxy para apache -> retornar para Nginx -> realizar substituição -> compactar e servir
Presumo que exista um módulo semelhante para Apache e outros servidores.