Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.1K
Views
NGINX no redirige en auth_request 302

Tengo un proxy inverso NGINX que también sirve contenido estático en / con la siguiente configuración

 location / { auth_request /authn; proxy_intercept_errors on; recursive_error_pages on; error_page 301 302 303 307 308 = @handle_redirect; gzip_static on; index index.html; root /usr/share/nginx/html; try_files $uri $uri/ @index; } location /authn { set $target http://gateway:8030/authn; proxy_pass http://gateway:8030/authn; proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_set_header X-Original-URI $request_uri; proxy_pass_request_headers on; proxy_intercept_errors on; recursive_error_pages on; error_page 301 302 303 307 308 @handle_redirect; } location @handle_redirect { proxy_set_header Host $host:$server_port; set $redirect_url $upstream_http_location; proxy_pass $redirect_url; }

El objetivo es verificar que el usuario esté autenticado por subsolicitud al punto final /authn, que devolverá 302 y el encabezado de ubicación si el usuario no lo está. Pero el cliente obtiene 500 de NGINX con un registro de errores como

 auth request unexpected status: 500 while sending to client

También tengo un punto final /root que pasa poxy directamente a la puerta de enlace /authn que redirige correctamente a la página de inicio de sesión y autentica al cliente. En lugar de manejar redireccionamientos en subsolicitudes, probé solicitudes de paso de proxy a este punto final con la configuración

 location /root { set $target http://top-gateway:8030/authn; proxy_pass http://top-gateway:8030/authn; } location /authn { ... error_page 301 302 303 307 308 /root;

Pero en este caso me sale 500 y

 auth request unexpected status: 302 while sending to client

en NGINX error.log

¿Por qué NGINX no maneja las redirecciones correctamente con esta configuración y cómo resolverlo correctamente?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Tal vez esto sea útil para usted para saber por qué falla, tal vez llegué tarde, pero encontré este hilo para hacer algo similar.

https://nginx-devel.nginx.narkive.com/0cH1MZv7/patch-allow-http-auth-request-module-to-forward-302-responses

El enlace muestra una conversación entre un desarrollador de Nginx y un usuario que estaba motivado para escribir un parche. Parece que Nginx solo admite códigos 2xx y 4xx para auth_request. Pero podría hacer algo como esto si controla la aplicación como se muestra en ese enlace.

 location / { auth_request /auth; auth_request_set $auth_redirect $upstream_http_location; error_page 401 = /auth_redirect; } location /auth { proxy_pass http://auth_backend; ... } location /auth_redirect { return 302 $auth_redirect; }

Además, me resultó útil leer esto (no es lo mismo, pero es una pista para algunas ideas):

¿Cómo realizo llamadas de servicio web dentro de nginx?

Este enlace muestra una introducción simple (que puede encontrar en la documentación) sobre auth_request_set.

 auth_request_set $x_upstreamhost $upstream_http_x_upstreamhost;

Además, aquí hay un nivel profundo de la implementación del código de auth_request.

https://www.nginx.com/resources/wiki/extending/examples/auth_request/

Este enlace muestra un desglose del código de la implementación de auth_request. No puedo incluir eso aquí.

Salud,

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!