Я установил обратный прокси с mod_proxy, mod_proxy_html (3.1.3) и mod_xml2enc в окне CentOS 6.4.
Прокси-сервер отлично обслуживает целевой сервер, но искажает символы, отличные от ASCII (в моем случае «äöüéàè»).
Я искал в Google всю карту, пытаясь найти решение этой проблемы, но безрезультатно.
Кодировка правильно указана в заголовке ответа и идентична кодировке целевого сервера (utf-8). Я также пробовал явно установить кодировку, используемую xml2enc, через:
xml2EncDefault utf-8
но безрезультатно.
Я запускаю прокси с виртуального хоста со следующей конфигурацией прокси:
ProxyRequests off
ProxyHTMLLinks a href
ProxyHTMLLinks area href
ProxyHTMLLinks link href
ProxyHTMLLinks img src longdesc usemap
ProxyHTMLLinks object classid codebase data usemap
ProxyHTMLLinks q cite
ProxyHTMLLinks blockquote cite
ProxyHTMLLinks ins cite
ProxyHTMLLinks del cite
ProxyHTMLLinks form action
ProxyHTMLLinks input src usemap
ProxyHTMLLinks head profile
ProxyHTMLLinks base href
ProxyHTMLLinks script src for
ProxyHTMLLinks iframe src
ProxyPass /foo/ http://someserver.com/
ProxyPassReverse /foo/ http://www.someserver.com/
<Location /foo/>
SetOutputFilter INFLATE;proxy-html;DEFLATE
ProxyPassReverse /
ProxyPassReverseCookiePath / /foo
ProxyHTMLURLMap http://www.someserver.com /foo
ProxyHTMLURLMap http://someserver.com /foo
RequestHeader unset Accept-Encoding
</Location>
Оказывается, «mod_proxy_html» во всем этом был невиновен.
Объявление кодировки через:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
заставил проблему уйти.
Это немного странно, так как Content-Type был правильно установлен в заголовке ответа.