1

できる限り周りを見回しましたが、完全に困惑するところまで来ました。

私は 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 はこのプロジェクトでは機能しませんでした - しかし、最終的にそれを行う方法が見つかりました!

4

2 に答える 2

1

変更

ProxyHTMLDocType "<!DOCTYPE html>" 

ProxyHTMLDocType "<!DOCTYPE html>" XML

注意してください

ProxyHTMLStripComments Off 

すべてのコメントに対して機能するわけではありません。これについては、まだ解決策を見つけていません。

于 2012-12-11T11:22:32.910 に答える
1

この問題は、mod_proxy_html 内のバグに関連しています (s. http://apache-http-server.18135.x6.nabble.com/PATCH-mod-xml2enc-eats-end-of-file-td5001104.html ) 。

説明されている動作を確認でき (loglevel debugの apache のエラー ログを参照)、パッチは機能しますが、そのアプローチは完全な解決策ではありません。

バージョン: mod_xml2enc (1.0.4) libxml2 (2.7.6-0.9.1)

于 2013-06-13T17:11:19.587 に答える