Новое промежуточное ПО 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
(как в упомянутом случае),