美文网首页
Nginx直接处理上游返回的重定向请求

Nginx直接处理上游返回的重定向请求

作者: 海边的贝壳林 | 来源:发表于2023-07-31 17:14 被阅读0次

    Nginx代理的上游服务返回的301、302等重定向请求,直接在服务器端(Nginx)端进行处理,不将重定向信息返回给客户端。客户端不感知重定向请求。

    Nginx 提供了内置变量 “$upstream_http_< 响应头字段名>” 可获取响应头字段属性值
    @error_page 是内部循环,最大循环次数为 10 次。

    server {
        listen 8888;
        resolver 114.114.114.114 valid=30s;
        # Nginx处理状态码大于300的响应结果
        proxy_intercept_errors on;
        # 启用多级错误跳转
        recursive_error_pages on;
        location ~ /proxy {
            proxy_pass http://backend;
            error_page 301 302 307 308 = @error_page_302;
        }
    
        location @error_page_302 {
            set $new_redirect_location '$upstream_http_location';
            proxy_pass $new_redirect_location;
            # 支持多层3XX跳转
            error_page 301 302 307 = @error_page_302;
        }
    }
    
    

    参考: https://blog.csdn.net/hzbooks/article/details/109324553

    相关文章

      网友评论

          本文标题:Nginx直接处理上游返回的重定向请求

          本文链接:https://www.haomeiwen.com/subject/jugepdtx.html