不要通过HTTP反向代理公开HTTP 302redirect – 在内部处理它

我正在为一个非常有限的设备创build一个Facebook客户端 – 它的网页浏览器(ANT Galio)不能正确处理HTTP302的图像来源。

我的UC看起来像这样 – 在Web应用程序标记configuration文件图像放置方式:

<img src="http://reverseproxyfqdn/graph.facebook.com/profileId/picture/" />

当代理请求graph.facebook.com/profileId/picture/时,它将HTTP 302redirect到不同的地址,例如fbcdn-profile-a.akamaihd.net/someUrl 。 此响应反向代理Web浏览器,位置标题已更改为reverseproxyfqdn / fbcdn-profile-a.akamaihd.net / someUrl 。 我testing过的所有网页浏览器都能正确处理,但不是ANT Galio。 我需要直接返回从fbcdn-profile-a.akamaihd.net/someUrl获得的图像,作为对reverseeproxyfqdn / graph.facebook.com / profileId / picture /的响应 – 因此不要将整个HTTP 302redirect故事暴露给networking浏览器。

有谁知道如何在Nginx或Apache 2.2中做到这一点? 我想避免为此创build一个特殊的PHP / Perl / Java应用程序,并通过HTTP服务器configuration实现它。

你应该考虑proxy_redirect指令,这可能会帮助你处理这个问题。

不要首先将graph.facebook.com/.../picture/... URL发送到浏览器。 相反,请在创buildHTML页面的同时在服务器端自行解决这些问题,并在其位置插入CDN URL。