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