Eu tenho um servidor web apache2 que manipula o proxy reverso para o aplicativo Rails3 em execução em outra máquina.
A configuração funciona, exceto que as URLs geradas no aplicativo da Web não estão sendo reescritas pela minha configuração para mod_proxy_html.
O "Cenário de Proxy Reverso" é exatamente o que eu estou tentando fazer, então segui o tutorial tão completamente quanto eu sei.
Eu apliquei ou tentei respostas fornecidas aqui no stackoverflow, sem efeito.
De acordo com o "Cenário de Proxy Reverso", você quer um número de módulos carregados. Todas essas instruções estão no meu arquivo httpd.conf e quando eu examino a saída de
apactectl -t -D DUMP_MODULES
todos os módulos esperados são exibidos na listagem.
Meu servidor web externo que faz o proxy reverso está em www.ourdomain.org e o aplicativo Rails está disponível internamente em apphost.local (o servidor é Mac OS X Server 10.6, o servidor de aplicativos rails é Mac OS X 10.6).
O que está funcionando agora é o acesso ao webapp via proxy reverso como:
http://www.ourdomain.org/apphost/railsappname/controllername/action
Mas nenhum dos arquivos javascript, arquivos css ou outros recursos são carregados, e links internos para o aplicativo da web saem sem a parte do URL do URL, como se minha regra de reconfiguração estivesse configurada incorretamente (então, é claro que eu focado nisso e parece que nada pode ser adicionado ou excluído no processo de passar o html do apophost e sair pelo servidor Apache).
Por exemplo, passando o mouse sobre um link de ação no HTML retornado pelo aplicativo da web, você verá:
http://www.ourdomain.org/railsappname/controllername/action
Veja como minhas diretivas do Apache se parecem:
LoadModule proxy_html_module /usr/libexec/apache2/mod_proxy_html.so
LoadModule xml2enc_module /usr/libexec/apache2/mod_xml2enc.so
ProxyHTMLLogVerbose On
LogLevel Debug
ProxyPass /apphost/ http://apphost.local/
<Location /apphost/>
SetOutputFilter INFLATE;proxy-html;DEFLATE
ProxyPassReverse /
ProxyHTMLExtended On
ProxyHTMLURLMap railsappname/ apphost/railsappname/
RequestHeader unset Accept-Encoding
</Location>
Após cada alteração que eu faço no httpd.conf, eu verifiquei religiosamente o apachectl -t apenas para ser são.
Eu definitivamente não sou um especialista em Apache, mas todas as diretivas que se seguem não parecem anular o que estou fazendo aqui. Mas, em seguida, nada que eu tente parece alterar as URLs que vejo no meu navegador depois de atingir o servidor Apache com uma solicitação para o meu aplicativo da Web.
Mesmo que você não saiba o que eu fiz de forma incorreta, gostaria de receber ideias sobre como fazer com que o Apache ajude a ver o que está funcionando e fazendo com o html que vem do meu aplicativo da web. Isso é o que eu entendi o ProxyHTMLLogVerbose On e LogLevel Debug a ser configurado, mas eu não estou vendo nada nos arquivos de log.