Tengo una configuración de muestra:
upstream content { server 127.0.0.1:4001; } server { listen 4000; location /test-auth { add_header X-Test "test value"; return 200; } location /proxy { add_header "X-Test1" "test1"; auth_request /test-auth; auth_request_set $test $upstream_http_x_test; auth_request_set $test2 $upstream_status; proxy_pass http://content?test=$test&test2=$test2; proxy_pass_request_body off; add_header X-Test $test; add_header X-Test2 $test2; } } server { listen 4001; add_header X-Test3 "test3"; return 200 "test response $args"; } Quiero pasar el encabezado X-Test desde la ubicación de autenticación al navegador cuando solicito /proxy . Esto debe hacerlo la directiva auth_request_set extrayendo el valor de la variable $upstream_http_x_test . Pero siempre está vacío mientras el encabezado está configurado en la salida del punto final de autenticación. Al acceder a /test-auth directamente, está presente en la salida. Pero no puedo conseguirlo' en la ubicación /proxy . Además, $upstream_status siempre debe estar presente y mostrar el estado de la solicitud de autenticación, pero también está vacío. Cuando hago una solicitud a /proxy , obtengo solo estos:
X-Test3: test3 X-Test1: test1 test response test=&test2= Pero también necesito que los encabezados X-Test y X-Test2 llenen con los datos de la solicitud de autenticación y los valores correspondientes en la parte del contenido.
El punto final /test-auth se llama correctamente. Si devuelvo 401 en él, las solicitudes a /proxy también fallan con 401.
¿Qué estoy haciendo mal?