Установка заголовков с помощью NGINX auth_request и oauth2_proxy

Я хочу использоватьauth_request а такжеoauth2_proxy установить заголовок при успешном запросе аутентификации и затем передать его следующему встроенному прокси, который будет обрабатывать фактический запрос.

Я настроил NGINX и различные прокси, чтобы сделать свое дело, однако я не уверен, как установить заголовок с сервера (AUTH PROXY на диаграмме), который я использую для запроса аутентификации, чтобы этот заголовок передавался следующий сервер (BACKEND SERVER на диаграмме)

NGINX ---- auth request ----> AUTH PROXY
                                  |
  |     <---      201  <------  SUCCESS
  |
  ----> underlying request ----> BACKEND SERVER

Мой конфиг NGINX выглядит так

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;
    }                                                                                                                             
}                                                              

Когда я делаю фактический запрос, я вижу следующее в журналах отладки NGINX (это часть ответа от сервера аутентификации):

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"

Я хочу взятьx-user заголовок и передать его на сервер.

Я пробовал различные комбинации вlocation / блок, но ни один из них еще не работал. Например.

proxy_set_header x-user $upstream_http_x_user;proxy_set_header x-user $http_x_user;proxy_set_header x-user $sent_http_x_user;proxy_pass_header x-user

Ни один из них, кажется, не работает. Любые идеи, как я могу выполнить эту задачу? Обратите внимание, что аутентификационный прокси-сервер устанавливает заголовок, который я хочу передать бэкэнд-серверу,

Ответы на вопрос(1)

Ваш ответ на вопрос