できる限り周りを見回しましたが、完全に困惑するところまで来ました。
私は Apache を上に置いた RedHat サーバーを実行しています。これをプロキシとして使用して、外の世界と他の 2 つのアプリケーション サーバーの間に置かれ、ベースはまったく異なります (IIS が 1 つ、Linux が 1 つ)。
これらのサーバーは両方とも、そこにあるアプリケーションが理解できる正しい内部ネットワーク 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
プロキシのセットアップでは、mod_proxy および mod_proxy_html Apache モジュールを使用しています。私が遭遇している問題は、現在次のような 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>
http://httpd.apache.org/docs/2.4/en/mod/mod_proxy_html.htmlの Apache ドキュメントを調べても、すぐに手がかりは得られません。
誰かが同じ問題に遭遇しましたか? それとも、私が見逃している何かがありますか?
どんな助けでもありがたく受け取られます!
更新しました:
最終的に、この問題は、すべてのコンテンツを UTF-8 エンコードとして解析する際の mod_proxy_html のデフォルトの動作にあるように見えました (コンテンツの一部がエンコードされていない場合、最善の努力にもかかわらず修正できませんでした)。
この目的のために、少し作業した後、代わりに mod_substitute を使用して (テキストをテキストとして解析し、ファイルのエンコードを無視します)、読み込み時間を短縮するキャッシュ ソリューションを使用しました。
残念なことに mod_proxy_html はこのプロジェクトでは機能しませんでした - しかし、最終的にそれを行う方法が見つかりました!