Apache mod_include を試しています。
Apache を実行している 2 つのサーバーを取得しました。test_local.shtml (server1) に test_remote.shml (server2) からの単純なテキストを含めようとしています。
test_local.shtml :
<html>
<head>
<title></title>
</head>
<body>
<!--#include virtual="http://www.server2.com/test_remote.shtml"-->
</body>
</html>
test_remote.shtml :
<b>this is a test</b>
最初は機能しませんでした (error_log に「ファイルが存在しません」というエラーが表示されました)。セキュリティ上の理由から、含めることができた唯一のファイルはローカル サーバー (server1) にあり、ローカル パスはありますが、リモート URL はないようです。次に、リモート インクルードを機能させるには、mod_include と組み合わせて mod_proxy (および mod_proxy_html) を使用する必要があることを理解しました。
そこで、(server1 の) httpd.conf に以下を追加しました。
ProxyPass /server2 http://www.server2.com
次に、test_local.shtml のインクルード行を次のように変更しました。
<!--#include virtual="/server2/test_remote.shtml"-->
今回はエラーはありません。何かが含まれていますが、結果のテキストはすべて文字化けしています。
‹³I²+ÉÈ,V¢D…’Ôâý$;.j¿è
構成に何か不足していますか? どうしたの?
更新: 2つのサーバー間でデータが送信される(そして読み取られる)方法に関するものだと思います..圧縮など。両方のサーバーに含まれており、機能している mod_deflate 構成セクションを確認しましたが、同じです。何か案が?ありがとう
更新 2: server2 で SetOutputFilter DEFLATE を無効にすると、server1 の mod_include に含まれるテキストは完全に読み取り可能になります。それが問題の原因です:gzipされたコンテンツを処理して正しく表示するようにserver1を構成するにはどうすればよいですか? (仮説として、outputfilter とは反対の何らかの inputfilter を想像します..)