Как переписать корневое расположение ресурсов, на которые ссылаются страницы обратного прокси в Apache 2?

Как переписать корневое расположение ресурсов, на которые ссылаются страницы обратного прокси в Apache 2?

У нас есть сервер приложений, расположенный по адресуhttp://foo.bar.

Доступ к нему необходимо осуществлять через http://wibble/foo с использованием обратного проксирования.

Мне это удалось, однако в http://foo.bar есть что-то, ссылающееся на /

НАПРИМЕР:

/images/бла.jpg

Итак, он пытается получить http://wibble/images/blah.jpg вместо

http:// wibble/foo/images/blah.jpg

Есть идеи, как заставить его вставлять префикс /foo для всего, на что ссылается /?

решение1

mod_proxyникогдаизменяет HTML.

Только заголовки HTTP-ответов, специально упомянутые выше, будут перезаписаны. Apache не будет перезаписывать другие заголовки ответов, а также не будет перезаписывать URL-ссылки внутри HTML-страниц. Это означает, что если проксируемый контент содержит абсолютные URL-ссылки, они обойдут прокси-сервер. Сторонний модуль, который будет заглядывать внутрь HTML и перезаписывать URL-ссылки, — это mod_proxy_html Ника Кью.

http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

решение2

Если вы используете nginx в качестве фронтенд-сервера, вы можете использовать HttpSubModule для выполнения подстановки. По сути, nginx должен проксировать запрос и выполнять подстановку в возвращаемом тексте. Я все же считаю, что вы не можете использовать это, если у вас есть сжатие на бэкенде (поэтому, пока у вас есть сжатие на фронтенд-сервере, все должно быть в порядке):

По сути: Nginx -> прокси-сервер для Apache -> возврат в Nginx -> выполнение подстановки -> сжатие и обслуживание

Я предполагаю, что аналогичный модуль существует для Apache и других серверов.

Связанный контент