我有一个 nginx 服务器代理和缓存对 django 后端的请求。当我向 django gunicorn 发出 curl 请求时,标头如下:
HTTP/1.1 200 OK
Server: gunicorn/19.9.0
Date: Mon, 05 Aug 2019 17:30:55 GMT
Connection: close
Vary: Cookie, Accept-Language
Content-Type: text/html; charset=utf-8
Content-Language: en
Set-Cookie: csrftoken=AV42uqHK4znT5iGHnr4dzaKNUaQmKjw0; expires=Mon, 03-Aug-2020 17:30:55 GMT; Max-Age=31449600; Path=/
我目前忽略了以下标题:
proxy_ignore_headers X-Accel-Redirect;
proxy_ignore_headers X-Accel-Expires;
proxy_ignore_headers X-Accel-Limit-Rate;
proxy_ignore_headers X-Accel-Buffering;
proxy_ignore_headers X-Accel-Charset;
proxy_ignore_headers Expires;
proxy_ignore_headers Cache-Control;
proxy_ignore_headers Set-Cookie;
proxy_ignore_headers Vary;
对于缓存我有以下配置:
proxy_buffering on;
proxy_cache STATIC;
proxy_cache_valid any 5m;
add_header X-Proxy-Cache-Status $upstream_cache_status;
add_header X-Proxy-Cached-Date $upstream_http_date;
现在发生的情况是,当我向服务器发出请求时,我大约一分钟内会获得缓存内容,然后我得到一个 MISS。我不关心用户会话,因此忽略 set-cookie 不是问题。
问题可能出在哪里?我该如何调试它?
谢谢!
答案1
如果每个人都有同样的问题,我的问题是我将 django 应用程序缓存文件夹与 nginx 服务器缓存文件夹混合在一起。因此 django 会随机删除 nginx 缓存文件。