使用透明模式时,Squid GET 请求返回错误的内容类型

使用透明模式时,Squid GET 请求返回错误的内容类型

我正在尝试找出移动设备出现奇怪问题的原因,该设备在 CentOS 7 上使用透明模式通过 Squid 3.3 代理,无法访问 Windows Phone 8 上 Bing 新闻应用中的新闻内容。

当内容加载时,我只是收到一条错误消息“加载此页面时发生错误”。每次请求新闻报道时,都会从移动设备记录类似于下面的 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/配置的代理设置下看到的内容不同。

我是否需要查看我squid.conf或其他方法中的特定设置来解决这个问题?我希望让这个客户端通过代理,但作为短期解决方案,我可以iptables为这个客户端 IP 编写一条规则以完全绕过代理。

相关内容