es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Nginx no está pasando la autenticación al socket de gunicorn.

Básicamente he configurado mi backend básico. Localmente, la API funciona como la seda, pero siempre que despliego la aplicación a producción, la API responde con:
"detail": "No se proporcionaron credenciales de autenticación."

Creo que Nginx no está pasando correctamente el encabezado a mi socket que ejecuta Gunicorn. Pero no sé cómo pasar el encabezado al socket.

La autorización es un token JWT básico, por lo tanto:
AUthorization: Portador bla-blubb-i-am-a-token-420-69

Esta es mi configuración de Nginx:

servidor {
      escuchar 80; 

      nombre_servidor dev.website.com;

      location = /favicon.ico {
         registro_acceso off; log_no_encontrado off;
      }

      location /static {
         alias /home/ubuntu/platform/backend/static;
      }

      auth_basic "Inicio de sesión de administrador";

      auth_basic_user_file /etc/nginx/.htpasswd;

      location / {
          incluir proxy_params;
          proxy_pass http://unix:/run/gunicorn.sock;
      }
} 

¿Qué me falta?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución

    El problema parece estar relacionado con el encabezado de autenticación que no se está pasando correctamente al socket que ejecuta gunicorn. Para pasar el encabezado de autorización al socket, puede incluir la directiva proxy_set_header para pasarlo al servidor ascendente.

    En su configuración de nginx, puede modificar el bloque de ubicación de la siguiente manera:

    location / {
      include proxy_params;
      proxy_set_header Authorization "Bearer bla-blubb-i-am-a-token-420-69";
      proxy_pass http://unix:/run/gunicorn.sock;
    }
    

    Esto pasará el encabezado de autenticación al socket que ejecuta gunicorn, y con suerte resolverá el problema de las credenciales de autenticación.

    Tenga en cuenta que debe reemplazar Bearer bla-blubb-i-am-a-token-420-69 con su cadena de token JWT real.

Comments are closed.