cento の 7 サーバーで Apache 2.4 を使用してリバース プロキシを構築しました。標準の html ページで動作しますが、.js ファイルに保存されている URL も置き換える必要があります。ディレクティブ:
ProxyHTMLExtended On
外部の .css および .js ファイル内の解析を有効にする必要がありますが、機能しません。ログファイルで私は見ることができます:
[proxy_html:trace1] [pid 3263] mod_proxy_html.c(823): [client xxx] Non-HTML content; not inserting proxy-html filter
mod_substitute を使用しようとしましたが、これは httpd.conf の興味深い部分です。
ProxyPass /mylocation/ http://remoteserver/
<Location /mylocation/>
ProxyHTMLEnable On
ProxyHTMLExtended On
LogLevel debug proxy_html:trace3 substitute_module:debug
RequestHeader unset Accept-Encoding
AddOutputFilterByType SUBSTITUTE text/javascript text/html
Substitute "s|/css/|/mylocation/css/|ni"
Substitute "s|/js/|/mylocation/js/|ni"
Substitute "s|/custom_logo/|/mylocation/custom_logo/|ni"
Substitute "s|/html/|/mylocation/html/|ni"
Substitute "s|/current_config/|/mylocation/current_config/|ni"
Substitute "s|/web_lang/|/mylocation/web_lang/|ni"
Substitute "s|/custom_lang/|/mylocation/custom_lang/|ni"
ProxyPassReverse /
ProxyHTMLURLMap //remoteserver /mylocation/
ProxyHTMLURLMap http://remoteserver /mylocation/
ProxyHTMLURLMap /mylocation /mylocation
ProxyHTMLURLMap ^\/(.*) /mylocation/$1 R
</Location>
しかし、ログ ファイルには mod_substitute トレースはありません。mod_substitute が呼び出されないようです。
proxyHTMLURLMap ルールは正常に機能しますが、通常の html ファイルでのみ機能します。
サーバーに要求している .js ファイルに応じて、ログ ファイルで確認できます。
[xml2enc:debug] [pid 3259] mod_xml2enc.c(254): [client xxx] AH01434: Charset ISO-8859-1 not supported by libxml2; trying apr_xlate
また
[proxy_html:trace1] [pid 3263] mod_proxy_html.c(823): [client xxx] Non-HTML content; not inserting proxy-html filter
その後、プロセスが停止し、ファイルを受け取りましたが、何も置き換えられていません。
1) 「ProxyHTMLExtended On」ルールは、Apache ドキュメントで説明されているように、外部の .js ファイルを解析しないのはなぜですか?
2) mod_substitute が機能しないのはなぜですか?