新的Django中间件没有被调用

时间:2012-12-01 14:17:40

标签: python django amazon-ec2 memcached django-middleware

我对网络开发很陌生。我正在亚马逊ec2服务器上托管的网站上工作。该站点使用django框架在python中。我正在使用memcached来缓存一些客户端信息。我的站点和缓存在本地计算机上运行,​​但在EC2服务器上运行。我检查了memcached服务器,发现它无法设置密钥。我可能需要在settings.py中更改一些内容,以便在服务器上正确设置密钥或我可能缺少的其他内容。

编辑:发现问题。我添加了一个新的中间件来设置memcache中的密钥。那不是被召集的。它在本地机器上完美运行。在服务器上我使用gunicorn作为app服务器,nginx作为反向代理。任何这些都可能导致问题。此外,我试图重新加载nginx,但这也没有帮助。

3 个答案:

答案 0 :(得分:2)

这是一个愚蠢的故障。我发现我需要重新加载gunicorn服务器以使新的中间件工作。谢谢大家的帮助。

答案 1 :(得分:0)

是否可以将此添加到您的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',
)

来自docs

当你说'添加了一个新的中间件'时,我不太清楚你的意思。

答案 2 :(得分:0)

首先,您需要在CACHES设置中设置缓存,并考虑访问缓存服务器所需的所有凭据:https://docs.djangoproject.com/en/dev/topics/cache/#memcached

还要确保可以从您尝试使用的实例访问缓存服务器。

当谈到使用新的中间件(稍有不同的问题)时,那么:

  • 确保在设置中正确定义(不会被其他设置覆盖,例如常用的local_settings.py文件,根据您使用的环境而不同),
  • 确保中间件类已正确定义(如果您想为传入的请求执行某些操作,请定义例如process_request()),
  • 如果您正在使用例如。使用Apache的mod_wsgi,记得通过例如重新加载服务(在这种情况下是Apache)。调用sudo service apache2 reload(如上述情况),