使用NGINX auth_请求和oauth2_代理设置头

使用NGINX auth_请求和oauth2_代理设置头,nginx,proxy,auth-request,Nginx,Proxy,Auth Request,我想使用and在成功的身份验证请求时设置一个头,然后将其传递给将处理实际请求的下一个代理内联 我已经设置了NGINX和各种代理来完成它们的工作,但是我不确定如何从用于AUTH请求的服务器(图中的AUTH PROXY)设置头,以便将头传递到下一个服务器(图中的后端服务器) 当我发出实际请求时,我会在NGINX调试日志中看到以下内容(这是auth服务器响应的一部分): 我想获取x-user头并将其传递到后端服务器 我在location/块中尝试了各种组合,但都没有成功。例如 proxy\u set

我想使用and在成功的身份验证请求时设置一个头,然后将其传递给将处理实际请求的下一个代理内联

我已经设置了NGINX和各种代理来完成它们的工作,但是我不确定如何从用于AUTH请求的服务器(图中的AUTH PROXY)设置头,以便将头传递到下一个服务器(图中的后端服务器)

当我发出实际请求时,我会在NGINX调试日志中看到以下内容(这是auth服务器响应的一部分):

我想获取
x-user
头并将其传递到后端服务器

我在
location/
块中尝试了各种组合,但都没有成功。例如

  • proxy\u set\u头x-user$upstream\u http\u x\u user
  • proxy\u set\u头x-user$http\u x\u user
  • proxy\u set\u header x-user$sent\u http\u x\u user
  • proxy\u pass\u header x-user

这些似乎都不起作用。你知道我怎样才能完成这项任务吗?请注意,是auth代理设置了我要传递给后端服务器的头,

Woop,找到了它。正确的NGINX配置如下所示:

location / {                                               
    auth_request      /_auth;                             
    auth_request_set $user $upstream_http_x_user;       
    proxy_set_header x-user $user;                
    proxy_pass       http://backend_server;                
}                                                          

问题是,您无法将头直接分配到另一个头中,您必须使用
auth\u request\u set
将头设置为变量,然后将该变量分配到头中。

如何将$user传递给cookie?@ShivKumar为此提出了一个新问题。
server {                                                       
    listen                   9123;                             
    resolver                 10.3.0.2;                         
    resolver_timeout         30;                               

    location / {                                               
        auth_request      /_auth;                             
        proxy_set_header x-user $http_x_user;                
        proxy_pass       http://backend_server;                
    }                                                          

    location = /_auth {                                       
        internal;                                              
        proxy_pass https://auth;          
        proxy_pass_request_body off;                           
        proxy_set_header Content-Length "";                    
        proxy_set_header X-Original-URI $request_uri;
    }                                                                                                                             
}                                                              
2013/10/14 17:46:42 [debug] 31222#0: *4 http proxy header: "Content-Type: text/html; charset=utf-8"    
2013/10/14 17:46:42 [debug] 31222#0: *4 http proxy header: "Date: Mon, 14 Oct 2013 17:46:42 GMT"       
2013/10/14 17:46:42 [debug] 31222#0: *4 http proxy header: "Server: nginx/1.2.5"                       
2013/10/14 17:46:42 [debug] 31222#0: *4 http proxy header: "Vary: Cookie"                     
2013/10/14 17:46:42 [debug] 31222#0: *4 http proxy header: "x-user: 1"
location / {                                               
    auth_request      /_auth;                             
    auth_request_set $user $upstream_http_x_user;       
    proxy_set_header x-user $user;                
    proxy_pass       http://backend_server;                
}