Я огляделся вокруг столько, сколько мог, и я попал в точку, где я совершенно запутался.
Я запускаю сервер RedHat с Apache поверх, который я использую в качестве прокси-сервера, чтобы сидеть между внешним миром и двумя другими серверами приложений с совершенно разными базами (один IIS, один Linux).
Оба этих сервера имеют правильные внутренние сетевые URL-адреса, которые понимают приложения, находящиеся на них. Приложения (производные от DotNetNuke и WordPress) генерируют страницы HTML 5, которые содержат правильную/соответствующую разметку, и корректно отображаются за пределами прокси-сервера (т. е. во внутренней сети).
Однако при передаче этих страниц через прокси в результате отсутствуют символы в конце файлов CSS и JavaScript.
Итак (на практике), код JavaScript выглядит следующим образом:
... {return f})})(window);
или CSS следующим образом:
...
background-position:center left;
background-repeat:no-repeat;
}
... превращается в такой код:
... {return f})})(window
или вот так:
...
background-position:center left;
background-repeat:no-re
Настройка прокси использует модули Apache mod_proxy и mod_proxy_html, и я совершенно уверен, что проблема, с которой я сталкиваюсь, связана с конфигурацией mod_proxy_html, которая в настоящее время выглядит следующим образом:
ProxyHTMLEnable On
ProxyHTMLBufSize 102400
ProxyHTMLExtended On
ProxyHTMLStripComments Off
ProxyHTMLDocType "<!DOCTYPE html>"
ProxyHTMLMeta Off
#ProxyHTMLLogVerbose On
#LogLevel Debug
<Location /xxxxx>
ProxyPass http://www.example.com
ProxyPassReverse http://www.example.com
ProxyHTMLURLMap http://www.example.com /xxxxx
ProxyHTMLURLMap / /xxxxx/
</Location>
<Location />
ProxyPass http://10.11.0.51/
ProxyPassReverse http://10.11.0.51/
</Location>
Просмотр документации Apache здесь: http://httpd.apache.org/docs/2.4/en/mod/mod_proxy_html.html - однако не дает никаких немедленных подсказок.
Кто-нибудь сталкивался с такой же проблемой? Или есть что-то быстрое, что мне не хватает?
Любая помощь будет принята с благодарностью!
Обновлено:
В конечном счете, проблема заключалась в поведении mod_proxy_html по умолчанию при анализе всего содержимого в кодировке UTF-8 (когда часть содержимого не была закодирована, что не могло быть изменено, несмотря на все усилия).
С этой целью, после небольшой работы, вместо этого был использован mod_substitute (просто анализирующий текст как текст, игнорируя кодировку файла) вместе с решением для кэширования, чтобы ускорить время загрузки.
К сожалению, mod_proxy_html не работал для этого проекта, но в конце концов был найден способ сделать это!