Новое промежуточное ПО Django не вызывается

Я довольно новичок в веб-разработке. Я работаю над сайтом, размещенным на сервере amazon ec2. Сайт на Python с использованием фреймворка Django. Я использую memcached для кэширования некоторой информации о клиенте. Мой сайт и кеширование работают на локальной машине, но не на сервере EC2. Я проверил сервер memcached и обнаружил, что он не может установить ключи. Есть ли что-то, что мне нужно изменить в settings.py, чтобы ключи были установлены на сервере соответствующим образом, или что-то еще, что я мог бы пропустить.

РЕДАКТИРОВАТЬ: обнаружил проблему. Я добавил новое промежуточное ПО для установки ключей в memcache. Это не называется. Отлично работает на локальной машине. На сервере я использую gunicorn в качестве сервера приложений и nginx в качестве обратного прокси. Может ли любой из них вызвать проблемы. Также я попытался перезагрузить nginx, но это тоже не помогло.

3 ответа

Решение

Это был глупый глюк. Я обнаружил, что мне нужно перезагрузить сервер gunicorn, чтобы заставить работать новое промежуточное программное обеспечение. Спасибо всем за помощь.

Это случай добавить это в ваши settings.py?

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.cache.UpdateCacheMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.cache.FetchFromCacheMiddleware',
)

Из документов.

Только мне не очень понятно, какие шаги вы имеете в виду, когда говорите, что "добавили новое промежуточное программное обеспечение".

Прежде всего, вам нужно установить кеширование в CACHES настройки с учетом всех учетных данных, необходимых для доступа к серверу кэша: https://docs.djangoproject.com/en/dev/topics/cache/

Также убедитесь, что сервер кэша доступен из экземпляра, который вы пытаетесь использовать.

Когда дело доходит до использования нового промежуточного программного обеспечения (немного другая проблема), то:

  • убедитесь, что он правильно определен в настройках (не перезаписан другими настройками, как, например, часто используемые local_settings.py файл, который должен отличаться в зависимости от среды, которую вы используете),
  • убедитесь, что класс промежуточного программного обеспечения определен правильно (например, определяет. process_request(), если вы хотите что-то сделать для входящего запроса),
  • если вы используете, например. mod_wsgi с Apache, не забудьте перезагрузить сервис (в данном случае Apache), например. ссылающееся sudo service apache2 reload (как в упомянутом случае),
Другие вопросы по тегам