Отказ от ответственности:
Я работаю над проектом, в котором существует «огромное» веб-приложение с API для мобильных устройств, поэтому изменить API невозможно.
Это приложение было разработано давно, и над ним работали несколько разработчиков,
Сказав это, проблема заключается в следующем;
В API для мобильных устройств этого сайта (просто просматривает, чем возвращает данные json) код ищет токен, но делает это в заголовках запроса:
token = request.META.get('HTTP_TOKEN')
Когда я тестирую этот API локально, он работает нормально, но в продакшне нет, поэтому я пытаюсь выяснить, что происходит, и нашел это:
django преобразует заголовки, даже пользовательские заголовки, в ключи в request.META, я использую urllib2 и запросы для тестирования API, и проблема в производстве заключается в том, что на рабочем сервере request.META никогда не имеет ключа с именем HTTP_TOKEN, поэтому, выполняя небольшую отладку, я серьезно думаю, что проблема заключается в том, как мы обслуживаем приложение django.
Мы используем django1.3, nginx, gunicorn, virtualenvwrapper, python2.7.
Мой главный подозреваемый - nginx, я думаю, что nginx каким-то образом получает заголовок, но не пересылает его в django, я пытаюсь провести некоторое исследование по этому поводу, но я нашел только информацию о заголовках безопасности и пользовательских заголовках от nginx, но я не нашел doc или что-то о том, как сообщить nginx, что он разрешает этот заголовок, и не удалять его.
Мне нужна помощь здесь, первое, что нужно проверить, получает ли nginx заголовок, но я просто немного разбираюсь в nginx и не знаю, как сказать ему регистрировать заголовки запросов.
Спасибо
Обновить