UWSGI 使用 Nginx 缓存的 HTTP 响应大小不同

UWSGI 使用 Nginx 缓存的 HTTP 响应大小不同

我需要在 nginx 上为 python(django) 应用配置缓存。一切正常,但有时我会从缓存中得到空白页。我没有在 nginx 和 uwsgi 日志中看到任何错误。在正常情况下,我HTTP/1.1 200 resposne 24615 bytes从 nginx 获得较长的数据,但有时它的长度为 20 个字节。

HTTP/1.1 200   0.08 secs:   24615 bytes ==> /
HTTP/1.1 200   0.07 secs:   24615 bytes ==> /
HTTP/1.1 200   7.71 secs:   24615 bytes ==> /
HTTP/1.1 200   0.06 secs:      20 bytes ==> /
HTTP/1.1 200   0.06 secs:      20 bytes ==> /
HTTP/1.1 200   0.07 secs:      20 bytes ==> /
HTTP/1.1 200   7.79 secs:   24615 bytes ==> /
HTTP/1.1 200   0.07 secs:   24615 bytes ==> /

我的缓存配置:

uwsgi_cache_path /var/cache/nginx_cache levels=1:2 keys_zone=my_cache:1m max_size=500m inactive=30m use_temp_path=off;
uwsgi_cache my_cache;
uwsgi_cache_key "$uri";
uwsgi_ignore_headers Cache-Control X-Accel-Expires Expires Vary Set-Cookie;
uwsgi_cache_valid 2s;

并且想想这 20 个字节响应的原因是什么?

答案1

看起来您缓存了 HEAD 响应。根据 nginx 文档 (http://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_cache_methods)HEAD 方法总是被添加到 uwsgi_cache_methods。

相关内容