location / {
fastcgi_intercept_errors on;
proxy_pass https://drive.google.com/uc?$query_string;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host drive.google.com;
proxy_set_header Referer https://drive.google.com;
error_page 301 302 307 = @handle_redirects;
}
location @handle_redirects {
set $redirect_location '$upstream_http_location';
proxy_pass $redirect_location;
proxy_cache ngx-cache;
proxy_cache_key $query_string;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
curl -I -A“ua”https://server/dl?id=trhtyjkfktkghjsutrtujyuk直接返回302,而不是转到handle_redirects部分,此配置工作在我的另一个vps与服务器Tengine,但它不工作在我的另一个vps与原始版本nginx,不知道哪里出错了。任何帮助将不胜感激。谢谢!!
2条答案
按热度按时间ds97pgxw1#
我相信你需要补充:
从Intercepting backend 301/302 redirects (proxy_pass) and rewriting to another location block possible?窃取
cwxwcias2#
我在尝试从https://picsum.photos网站代理图片时遇到了类似的问题。当请求一个特定的图片时,他们返回一个302重定向到一个HMAC签名的URL。
我的工作解决方案是:
希望这能帮到什么人。