
У нас есть сервер приложений, расположенный по адресу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 Ника Кью.
решение2
Если вы используете nginx в качестве фронтенд-сервера, вы можете использовать HttpSubModule для выполнения подстановки. По сути, nginx должен проксировать запрос и выполнять подстановку в возвращаемом тексте. Я все же считаю, что вы не можете использовать это, если у вас есть сжатие на бэкенде (поэтому, пока у вас есть сжатие на фронтенд-сервере, все должно быть в порядке):
По сути: Nginx -> прокси-сервер для Apache -> возврат в Nginx -> выполнение подстановки -> сжатие и обслуживание
Я предполагаю, что аналогичный модуль существует для Apache и других серверов.