【问题标题】:Getting 404 error if requesting a page through proxy, but 200 if connecting directly如果通过代理请求页面,则会出现 404 错误,但如果直接连接,则会出现 200
【发布时间】:2015-09-14 20:12:05
【问题描述】:

我正在用 Java 开发 HTTP 代理。我将所有数据从客户端重新发送到服务器而不接触它,但是对于某些 URL(例如 this),如果我通过代理连接,服务器会返回 404 错误。

请求的 URL 使用 Varnish 缓存,因此它可能是问题的根源。我无法重新配置它 - 它不是我的。

如果我直接通过浏览器请求该 URL,服务器会返回 200 并且图像会正确显示。

我被卡住了,因为我什至不知道要阅读什么内容以及如何编写搜索请求。

非常感谢。

【问题讨论】:

    标签: http proxy http-status-code-404 varnish


    【解决方案1】:

    修复重发请求的Host: 标头。从代理发出的请求要么没有 Host 标头,要么已损坏(或仅存在 X-Host)。另请注意,代理应用程序将执行其自己的 DNS 查找,这可能会产生与您的本地计算机(您发出原始请求的地方)不同的 IP 地址。

    这行得通:

    > curl -s -D - -o /dev/null http://212.25.95.152/w/w-200/1902047-41.jpg -H "Host: msc.wcdn.co.il"
    
    HTTP/1.1 200 OK
    Content-Type: image/jpeg
    Cache-Control: max-age = 315360000
    magicmarker: 1
    Content-Length: 27922
    Accept-Ranges: bytes
    Date: Sun, 05 Jul 2015 00:52:08 GMT
    X-Varnish: 2508753650 2474246958
    Age: 67952
    Via: 1.1 varnish
    Connection: keep-alive
    X-Cache: HIT
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-24
      • 2021-03-16
      相关资源
      最近更新 更多