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

282
Views
¿Cómo se envía una solicitud de autenticación a una URI variable en nginx?

Estoy tratando de usar el módulo auth_request para verificar si un usuario puede acceder a un archivo determinado. El usuario publica la solicitud en /my/download/uri/<File ID> . Quiero que la solicitud de autorización se publique en auth_service:9999/files/<File ID> . La parte relevante de mi configuración es la siguiente:

 location /my/download/uri { auth_request /auth/files/$uri; alias /my/file/directory; } location /auth { internal; proxy_pass http://auth_service:9999/; proxy_pass_request_body off; proxy_set_header Content-Length ""; }

El servicio de autorización recibe la solicitud, pero literalmente en /files/$uri ; la variable no se coloca. Primero intenté preparar el URI a través de una variable set , pero fue en vano. ¿Cómo puedo hacer que nginx dirija correctamente la solicitud de autorización?

(Nota: sé que puedo incluir la solicitud original en el encabezado de la solicitud de autorización a través X-Original-URI . Sin embargo, esto significaría que tengo que realizar un procesamiento adicional del URI completo en el servidor de autorización para obtener los datos relevantes , lo que preferiría no hacer si hay una forma de publicar la solicitud de autorización en el URI correcto en primer lugar).

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

No puede usar variables en auth_request. Aparentemente, esta es una opción de diseño para nginx https://trac.nginx.org/nginx/ticket/761 Se me ocurrió esto a través de prueba y error. Tuve problemas para poner $uri en una variable, no estoy seguro de por qué.

 location ~ /my/download/uri/(.*) { set $key $1 auth_request /auth; alias /my/file/directory; } location /auth { internal; proxy_pass http://auth_service:9999/$key; proxy_pass_request_body off; proxy_set_header Content-Length ""; }
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!