2013-01-21 10 views
22

Ho installato 2 server Apache. Uno sulla porta 80 e un altro sulla porta 8077. Sto volendo vedere tutto sul server su 8077 tramite un proxy inverso. Al momento ho:ProxyHTML per riscrivere l'URL

ProxyPreserveHost Off 
ProxyHTMLInterp On 
ProxyPass /translate/ http://www.example.com:8077/ 
ProxyPassReverse /translate/ http://www.example.com:8077/ 
ProxyHTMLURLMap//translate/ 

Questo mi permette di arrivare alla pagina iniziale del sito, ma i collegamenti alle immagini, CSS e altre pagine non lavoro.

Ad esempio, il css nel codice HTML mostra come

/css/style.css 

dove io in realtà voglio che sia

/translate/css/style.css 

Perché per prendere il file dal server 8077. Cosa posso fare con l'impostazione corrente per farlo funzionare?

risposta

28

Ok, questo è quello che ho finito per fare per farlo funzionare

ProxyPass /translate/ http://www.example.com:8077/ 
ProxyPassReverse /translate/ http://www.example.com:8077/ 

ProxyHTMLURLMap http://www.example.com:8087 /translate/ 

<Location /translate/> 
    ProxyPassReverse/
    SetOutputFilter proxy-html 
    ProxyHTMLURLMap http://www.example.com:8077 /translate/ 
    ProxyHTMLURLMap//translate/ 
    ProxyHTMLURLMap /translate/ /translate/ 
    RequestHeader unset Accept-Encoding 
</Location> 

Questo sembra funzionare bene. La ProxyHTMLURLMap http://www.example.com:8077/translate/line era necessaria solo per tradurre alcuni URL basati su "referrer" che causavano il tentativo di alcune pagine di servire direttamente dal port server 8077.

+0

Buona soluzione. Questo approccio non mi aiuta ancora con i collegamenti all'interno di CSS e JS, anche se non vengono sottoposti a proxy. – LauriK

+0

questo file è il file conf? – lrn2prgrm

Problemi correlati