我正在尝试在新服务器(nginx)上运行我的Django应用程序。我已经配置了Django的文件系统缓存(参见下面的配置)。这是我为我的网址获取的完整标题集:
HTTP/1.1 200 OK
Server: nginx/1.1.19
Date: Sun, 04 May 2014 19:40:56 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 14408
Connection: keep-alive
Content-Encoding: gzip
Expires: Thu, 15 May 2014 05:39:17 GMT
Vary: Cookie, Accept-Encoding
Last-Modified: Sun, 04 May 2014 19:39:17 GMT
Cache-Control: max-age=900000
Set-Cookie: csrftoken=qZJziTgGHyJEhSZ03xKwazR43tqodubE; expires=Sun,
03-May-2015 19:39:17 GMT; Max-Age=31449600; Path=/
P3P: CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"
正如您所见,Last Modified
字段位于请求的Date
之前不到一分钟。这似乎是一致的:每次重新加载页面时,它都会将此字段设置为当前时间(或之前)。这意味着我的90000
秒超时(10天)似乎总是相对于当前日期。
这个Django缓存配置中的任何内容看起来都很奇怪吗?
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': '/var/www/mydir/CACHE',
'TIMEOUT': 900000
}
}
# without this it defaults to 600, despite above setting
CACHE_MIDDLEWARE_SECONDS = 900000
这些是我的中间件类:
MIDDLEWARE_CLASSES = (
'middleware.SmartUpdateCacheMiddleware',
'django.middleware.gzip.GZipMiddleware',
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware'
)
(我正在使用SmartUpdateCacheMiddleware修复缓存中的Cookie问题)
这是否有任何原因发生,或者这实际上是预期的行为?