不要通过 HTTP 反向代理公开 HTTP 302 重定向 - 内部处理

不要通过 HTTP 反向代理公开 HTTP 302 重定向 - 内部处理

我正在为一个功能非常强大的设备创建 Facebook 客户端 - 它的网络浏览器(ANT Galio)无法正确处理图像源的 HTTP302。

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

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

当代理请求graph.facebook.com/profileId/picture/例如,HTTP 302 重定向到不同的地址fbcdn-profile-a.akamaihd.net/someUrl。此响应被反向代理到网络浏览器,并将 Location 标头更改为reverseproxyfqdn/fbcdn-profile-a.akamaihd.net/someUrl。我测试过的所有网络浏览器都可以正确处理它,但 ANT Galio 不行。我需要返回从fbcdn-profile-a.akamaihd.net/someUrl直接回应reverseproxyfqdn/graph.facebook.com/profileId/picture/- 因此不要将整个 HTTP 302 重定向故事暴露给 Web 浏览器。

有人知道如何在 Nginx 或 Apache 2.2 中执行此操作吗?我想避免为此创建特殊的 PHP/Perl/Java 应用程序,而是通过 HTTP 服务器配置来实现。

答案1

你应该考虑代理重定向指令可能会帮助您解决这个问题。

答案2

graph.facebook.com/.../picture/...首先不要将 URL 发送到浏览器。相反,在创建 HTML 页面时,自己在服务器端解析它们,然后将 CDN URL 插入到它们的位置。

相关内容