responsabilidad:Missing encabezado personalizado con Django, nginx y gunicorn
estoy trabajando en un proyecto en el que existe un "enorme" aplicación web que tiene una API para los móviles, por lo que cambiar la API no es una opción.
Esta aplicación fue desarrollada hace tiempo y varios desarrolladores han trabajado en él,
Dicho esto, el problema es el siguiente;
en la API para el móvil de este sitio (sólo puntos de vista que los retornos de datos JSON), el código está en busca de una ficha, pero lo hace en las cabeceras de solicitud:
token = request.META.get('HTTP_TOKEN')
Cuando la prueba esta API a nivel local, funciona bien, pero en producción no lo hace, entonces, intento averiguar qué está pasando y encontré esto:
django convierte encabezados, incluso encabezados personalizados en claves en request.META, utilizo urllib2 y requests para probar el api y el problema en la producción es que en el servidor de producción el request.META nunca tiene una clave llamada HTTP_TOKEN, entonces, haciendo un poco de depuración I s Creo que el problema es la forma en que servimos la aplicación django.
Estamos usando django1.3, nginx, gunicorn, virtualenvwrapper, python2.7.
Mi principal sospechoso es nginx, creo que, de alguna manera, nginx recibe el encabezado pero no lo reenvío a django, intento investigar un poco sobre esto, pero solo encontré información sobre encabezados de seguridad y encabezados personalizados de nginx, pero no encuentro el documento o algo sobre cómo decirle a nginx que permite ese encabezado y no lo elimine.
Necesito ayuda aquí, lo primero es probar si nginx recibe el encabezado, pero sé un poco sobre nginx y no sé cómo decirle que registre los encabezados de las solicitudes.
Gracias
Actualizar
¿Puede probar esa suposición? Registra una solicitud desde nginx y django, y asegúrate de que haya una diferencia en los encabezados HTTP. –
En parte ese es el problema, en las pruebas, un script que usa urllib2 y solicita que defina los encabezados que envío, en la vista imprimo los encabezados que recibo, en desarrollo servidor, los encabezados están bien, pero en producción django no recibe Encabezado HTTP_TOKEN. – diegueus9
Con eso estoy buscando una manera de decir a los encabezados de solicitud de impresión de nginx, pero el documento es un poco horrible – diegueus9