nginx反向代理302自定义处理程序不起作用

Posted

技术标签:

【中文标题】nginx反向代理302自定义处理程序不起作用【英文标题】:nginx reverse proxy 302 custom handler not working 【发布时间】:2019-08-01 08:13:40 【问题描述】:
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 部分,此配置适用于我的另一个带有服务器 Tengine 的 vps,但它不适用于我的另一个带有原始版本 nginx 的 vps,不知道哪里出了问题。任何帮助将不胜感激。谢谢!!

【问题讨论】:

【参考方案1】:

相信你需要补充:

  proxy_intercept_errors on;

盗自Intercepting backend 301/302 redirects (proxy_pass) and rewriting to another location block possible?

【讨论】:

以上是关于nginx反向代理302自定义处理程序不起作用的主要内容,如果未能解决你的问题,请参考以下文章

uni-app——一种通过Nginx反向代理处理302重定向请求解决网络请求中无法获取Cookie的解决方案

带有tomcat的nginx反向代理不起作用

Nginx 与 docker:反向代理不起作用

nextcloud 的 Nginx 反向代理不起作用

Next js 和 google 分析在 nginx 反向代理后面不起作用

使用 NGINX 作为反向代理的 docker-compose 不起作用:/