透過モードを使用すると、Squid GET リクエストが誤ったコンテンツ タイプを返す

透過モードを使用すると、Squid GET リクエストが誤ったコンテンツ タイプを返す

CentOS 7 で透過モードを使用して Squid 3.3 プロキシを通過するモバイル デバイスで、Windows Phone 8 の Bing News アプリ内のニュース コンテンツにアクセスできないという奇妙な問題の原因を突き止めようとしています。

コンテンツが読み込まれると、「このページの読み込み中にエラーが発生しました」というエラーが表示されます。ニュース記事がリクエストされるたびに、次のような GET リクエストがモバイル デバイスから記録されます。

TCP_MISS/200 414 GET http://en-gb.appex-rf.msn.com/article/v4/EN-GB/news/0/BBm10XM.js? - FIRSTUP_PARENT/::1 text/javascript

WPAD 経由でプロキシが設定されているクライアントで同じ GET リクエストを実行しましたが、応答が若干異なるようです。

TCP_MISS/200 399 GET http://en-gb.appex-rf.msn.com/article/v4/EN-GB/news/0/BBm10XM.js - FIRSTUP_PARENT/::1 application/json

curl を使用した詳細:

* About to connect() to en-gb.appex-rf.msn.com port 80 (#0)
*   Trying 213.104.143.210...
* Connected to en-gb.appex-rf.msn.com (213.104.143.210) port 80 (#0)
> GET /article/v4/EN-GB/news/0/BBm10XM.js HTTP/1.1
> User-Agent: curl/7.29.0
> Host: en-gb.appex-rf.msn.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json; charset=utf-8
< Last-Modified: Sun, 23 Aug 2015 19:43:49 GMT
< ETag: "7daadd066c8a3c246e24515a03b7eeb5"
< Server: Microsoft-IIS/8.5
< X-Diagnostic-S: AppContentService_IN_21
< X-Diagnostic-DC: eastus
< X-CMS-ACSElapsedTimeInMilliseconds: 4
< AppEx-Activity-Id: 18579b38-f191-4ba8-9af9-9fd97c0d15bb
< X-Trace-Context: {"ActivityId":"18579b38-f191-4ba8-9af9-9fd97c0d15bb"}
< X-AspNet-Version: 4.0.30319
< X-Powered-By: ASP.NET
< Cache-Control: public, max-age=300
< Date: Sun, 23 Aug 2015 20:33:32 GMT
< Content-Length: 7209
< Connection: keep-alive

Bing ニュース アプリは、プロキシを使用していない場合、または構成または WPAD 経由でプロキシを使用している場合 (つまり透過的ではない場合) に動作します。Windows 8.1 PC でテスト済み。

データ タイプが異なるため、これが Windows Phone 8 上のアプリの問題の原因である可能性が高いと想定していますが、Squid が透過モードと WPAD/構成されたプロキシ設定で異なる認識を示す理由はわかりません。

この問題を解決するために、私または他の方法で確認する必要がある特定の設定はありますか? このクライアントがプロキシを経由するようにしたいのですが、短期的な解決策として、このクライアント IP がプロキシを完全にバイパスするルールsquid.confを作成することもできます。iptables

関連情報