У нас есть сервер приложений, расположенный по адресу http://foo.bar .
Доступ к нему должен осуществляться через http: // wibble / foo с использованием обратного проксирования.
Это мне удалось, однако в http: // foo.bar есть ссылки на /
НАПРИМЕР:
/images/blah.jpg
Итак, он пытается получить http: // wibble / images / blah.jpg вместо
http: // wibble / foo / images / blah.jpg
Любая идея, как я могу заставить его вставить префикс / foo для всего, на что ссылается /?
mod_proxy никогда изменяет HTML.
Только заголовки HTTP-ответа, указанные выше, будут переписаны. Apache не будет перезаписывать другие заголовки ответов и не перезаписывать URL-адреса внутри HTML-страниц. Это означает, что если прокси-контент содержит абсолютные URL-ссылки, они будут обходить прокси. Сторонний модуль, который просматривает HTML-код и перезаписывает URL-адреса, - это mod_proxy_html Ника Кью.
Если вы используете nginx в качестве интерфейсного сервера, вы можете использовать HttpSubModule для выполнения замены. По сути, nginx должен проксировать запрос и выполнять замену возвращенного текста. Однако я верю, что вы не можете использовать это, если у вас есть сжатие на бэкэнде (так что, пока у вас есть сжатие на интерфейсном сервере, все будет в порядке):
По сути: Nginx -> прокси для apache -> вернуться в Nginx -> выполнить замену -> сжать и обслужить
Я предполагаю, что аналогичный модуль существует для Apache и других серверов.