Я хочу использовать auth_request, чтобы задать заголовок при успешном запросе аутентификации, а затем передать это до следующего встроенного прокси-сервера, который будет обрабатывать фактический запрос.
Я установил NGINX и различные прокси-серверы для выполнения своих задач, однако я не уверен, как установить заголовок с сервера (AUTH PROXY на диаграмме), который я использую для запроса auth, так что этот заголовок передается на следующий сервер (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 следующее (это часть ответа сервера auth):
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
Ничто из этого не работает. Любые идеи, как я могу выполнить эту задачу? Обратите внимание, что это auth proxy, который устанавливает заголовок, который я хочу передать на серверный сервер,