Обратный прокси-сервер Apache оборачивает ответ JSON в HTML

Заранее извиняюсь, если этот вопрос уже задавался раньше (не смог найти ничего похожего на него), или он просто тщательно очевиден, а я просто придурок, чтобы спросить.

Я использую Apache 2.4 для обратного прокси-сервера для нескольких внутренних страниц и веб-приложений. У меня включено довольно много прокси-модулей, в том числе mod_proxy_html для перезаписи HTML по мере необходимости. Каждая прокси-страница или веб-приложение находится внутри блоков.

Обычно это хорошо работает. Ссылки работают, ресурсы грузятся как надо бла-бла-бла. НО некоторые из этих веб-приложений используют AJAX для некоторых приятных функций UX, большинство этих запросов AJAX попадают в прокси-конечную точку JSON.

Моя проблема заключается в следующем: любой проксированный ответ JSON завернут в

<html><body><p>{ "Example": "Yes" }</html></body></p>

Я не знаю, откуда берутся эти теги HTML, и все, что я пытался от них избавиться, не сработало. Я пробовал блоки LocationMatch и явно устанавливал ProxyHTMLEnable Off, а также удалял замещающие выходные фильтры.

Есть ли способ явно отключить перезапись/замены тела ответа для определенного URL-адреса?


person Nathan Dabkowski    schedule 05.08.2015    source источник
comment
Вы можете попробовать использовать LocationMatch с регулярным выражением обратного просмотра: webmasters.stackexchange.com/a/93183/63872   -  person Greg    schedule 09.05.2016


Ответы (3)


У меня такая же проблема. После двух дней тестирования я нашел решение.

В области Location вам нужно прокомментировать

#SetOutputFilter  proxy-html

У меня есть только следующие строки

< Location /blabla >
    #ProxyHTMLEnable off
    ProxyPassReverse /
    #SetOutputFilter  proxy-html
    ProxyHTMLURLMap  /externalBlaBla/  /blabla/
    ProxyPassReverseCookiePath / /blabla
< /Location >
person nutria    schedule 30.06.2016
comment
Это как-то тяжело для глаз. Может быть, форматировать с кодовым блоком? - person Dilettant; 30.06.2016

Кажется, этот вопрос обсуждался на https://bahumbug.wordpress.com/2006/10/12/mod_proxy_html-revisited/ .

В современных версиях программного обеспечения (с тех пор, как mod_proxy_html был перемещен на apache.org в 2011 году) рекомендуемым исправлением является директива xml2StartParse.

Сказав это, если ProxyHTMLEnable Off не устранил проблему (после перезапуска сервера), у вас также есть другие проблемы, связанные с областью действия ваших директив конфигурации.

P.S. Почему я могу «зарегистрироваться» здесь с помощью Google или Facebook, но не с помощью OpenID? Сколько Google и Facebook платят вам за то, что вы шантажируете меня в их сторону?

person niq    schedule 25.09.2015

Комментируя SetOutputFilter proxy-html, вы просто отключаете перезапись ссылок, поэтому proxy_html просто ничего не делает.

person Valdis    schedule 30.05.2017