ProxyHTML для перезаписи URL

У меня настроено 2 сервера Apache. Один на порту 80, а другой на порту 8077. Я хочу видеть все на сервере на 8077 через обратный прокси. На данный момент у меня есть:

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

Это позволяет мне попасть на начальную страницу сайта, но ссылки на изображения, css и другие страницы не работают.

Например, css в html отображается как

/css/style.css

где я на самом деле хочу, чтобы это было

/translate/css/style.css

Чтобы он подхватил файл с сервера 8077. Что я могу сделать с текущими настройками, чтобы заставить это работать?


person Andrew    schedule 21.01.2013    source источник


Ответы (1)


Хорошо, это то, что я сделал, чтобы заставить его работать

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>

Кажется, это работает хорошо. Строка ProxyHTMLURLMap http://www.example.com:8077 /translate/ нужна только для перевода некоторых URL-адресов на основе "реферера". это привело к тому, что некоторые страницы пытались обслуживать напрямую с сервера порта 8077.

person Andrew    schedule 21.01.2013
comment
Хорошее решение. Этот подход по-прежнему не помогает мне со ссылками внутри CSS и JS... они не проксируются. - person LauriK; 23.09.2016
comment
этот файл является файлом conf? - person corlaez; 21.03.2017
comment
Это сработало для меня ТОЛЬКО совместно с stackoverflow.com/questions/32340737/, потому что я использую CentOS7, и мне нужно было sudo yum install mod_proxy_html в первую очередь - person blahblahetcetc; 20.07.2019
comment
@LauriK Вы нашли какое-нибудь решение для проксирования ссылок внутри CSS и JS? У меня точно такая же проблема. Ни одно из решений, которые я нашел до сих пор, не касается этого... Из документов Apache кажется, что ProxyHTMLExtended - это тот, который следует использовать https://httpd.apache.org/docs/2.4/mod/mod_proxy_html.html.#proxyhtmlextended - person Normadize; 03.03.2020
comment
Оооо, это старое. Если я правильно помню, то моя проблема была на самом деле где-то в другом месте. Извини - person LauriK; 05.03.2020