ProxyHTML pour réécrire L'URL

J'ai 2 serveurs apache mis en place. Un sur le port 80 et un autre sur le port 8077. Je veux tout voir sur le serveur sur 8077 via un proxy inverse. En ce moment j'ai:

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

Cela me permet d'accéder à la page initiale du site, mais les liens vers les images, css et autres pages ne fonctionnent pas.

Par exemple, le css dans le html s'affiche comme

/css/style.css

Où je veux vraiment que ce soit

/translate/css/style.css

Pour qu'il récupère le fichier du serveur 8077. Que puis-je faire avec le réglage actuel pour que cela fonctionne?

22
demandé sur Nix 2013-01-21 04:50:36

1 réponses

Ok, c'est ce que j'ai fait pour le faire fonctionner

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>

Cela semble bien fonctionner. Le ProxyHTMLURLMap http://www.example.com:8077 / translate / line était seulement nécessaire pour traduire certaines URL basées sur "referrer" qui faisaient que certaines pages finissaient par essayer de servir directement à partir du serveur de port 8077.

28
répondu Andrew 2013-01-21 22:35:01