2016-11-18 5 views
3

Apache Webサーバー(A)から別のマシン(B)の別のApache Webサーバーにリバースプロキシを設定しようとしています。構成でApache ProxyingによりERR_CONTENT_DECODING_FAILEDエラーが発生する

私は現在、いくつかの資産が絶えず(少なくとも、クロムで)ERR_CONTENT_DECODING_FAILEDにつながるためしかし要求し、私はそれは、サーバA上にあったかのように、サーバB上にあるWebページにアクセスすることができるよ使用しています。 プロキシではなく単純なリダイレクトを使用している場合は、このようなことは起こりません。

私は、リクエストとレスポンスヘッダを閲覧していると、すべてがファイル転送で罰金行ったようだ:

要求:

GET /app1/assets/css/vendor.min.css?1470017050 HTTP/1.1 
Host: some.host.address 
... 
Accept: text/css,*/*;q=0.1 
Accept-Encoding: gzip, deflate, sdch 

応答:

HTTP/1.1 200 OK 
... 
Vary: Accept-Encoding 
Content-Encoding: gzip 
Content-Type: text/css;charset=utf-8 
Connection: Keep-Alive 
Transfer-Encoding: chunked 

私は上の設定の下で使用しましたサーバA:

ProxyPreserveHost on 
ProxyPass "/app1/" "http://some.host.address:8080/app1/" 
ProxyPassReverse "/app1/" "some.host.address:8080/app1/" 
ProxyHTMLURLMap "http://some.host.address:8080" "/app1" 

<Location /app1/> 
     ProxyPassReverse /app1/ 
     ProxyHTMLEnable On 
     ProxyHTMLURLMap//app1/ 
</Location> 

答えて

2

ERR_CONTENT_DECODING_FAILEDエラーは、バックエンドサーバーが圧縮を使用しており、書き換え中に収縮したコンテンツを処理しない場合に発生します。

有用な情報はthis wikiであり、また、Marco Balestraのコメントはmod_proxy_html documentationです。

私は(書き換え前に膨らませる)成功して次のことを試してみました:

ProxyHTMLEnable On 
SetOutputFilter INFLATE;proxy-html;DEFLATE 
ProxyHTMLURLMap//app1/ 

その後のコメントを読んだ後、私は(正確に文字エンコーディングを処理する必要があります)、このように変更:

ProxyHTMLEnable On 
RequestHeader unset Accept-Encoding 
ProxyHTMLCharsetOut * 
ProxyHTMLURLMap//app1/ 
ProxyHTMLURLMap /app1/ /app1/ 
関連する問題