Nginx 未将参数甚至标头传递给身份验证服务器

Nginx 未将参数甚至标头传递给身份验证服务器

我的 NGINX 服务器上有以下配置。

    location /login/  {
            auth_request /auth;
            auth_request_set $auth_status $upstream_status;
            proxy_ssl_verify              off;
            proxy_ssl_protocols           TLSv1 TLSv1.1 TLSv1.2;
            proxy_ssl_ciphers             HIGH:!aNULL:!MD5;
            proxy_ssl_certificate cert.pem;
            proxy_ssl_trusted_certificate cert.crt;
            proxy_ssl_certificate_key cert.key;
            proxy_pass https://www.myshop.com;
    }

    location /auth {
        internal;
        proxy_pass              http://myvalidator:8080/validator$is_args$args;
        proxy_pass_request_body off;
        proxy_set_header        Content-Length "";
        proxy_set_header        X-Original-URI $request_uri;
    }

检查验证器端,请求已完成,但未发送 URL 查询,甚至未发送原始标头。如何将原始查询或原始标头中的值发送到验证器服务器?

答案1

您可以尝试设置proxy_pass_request_body on; 它指示是否将原始请求的标头字段传递给代理服务器。

location /auth {
        internal;
        proxy_pass              http://myvalidator:8080/validator$is_args$args;
        proxy_pass_request_body on;
        proxy_set_header        Content-Length "";
        proxy_set_header        X-Original-URI $request_uri;
    }

相关内容