nginx 限制总缓存大小
我正在使用 nginx 缓存对我的 uwsgi 后端的请求
uwsgi_cache_path /var/cache/nginx/uwsgi keys_zone=cache:15M max_size=5G;
我的后端设置了一个很长的过期 header (1 年以上)。但是,当我的系统运行时,我看到缓存达到 15M。它上升到那个级别,然后修剪到 10M。
这会给我的后端带来很多不必要的调用。当我更改 keys_zone 大小时,它似乎控制了整个缓存的大小。它似乎忽略了 max_size 而是替换了 keys_zone 大小。 (*)
谁能解释这种行为?此版本中是否存在已知错误?我错过了重点吗?我不想分配 5G 给缓存管理器..
# nginx -V
nginx version: nginx/1.2.0
built by gcc 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
TLS SNI support enabled
configure arguments: --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --user=www-data --group=www-data --with-http_ssl_module --with-http_stub_status_module
(*) 更新:我想这是我试图在困惑中找到模式的过度想象。
请您参考如下方法:
nginx 使用 Expires header ( and some other headers ) 来确定响应是否可缓存,但不用于确定将其缓存多长时间。
默认情况下,您的非事件缓存将在 10 分钟后删除。你能增加这个数字看看它是否有所作为吗?
proxy_cache_path path [levels=levels] keys_zone=name:size [inactive=time] [max_size=size] [loader_files=number] [loader_sleep=time] [loader_threshold=time];
Cached data that are not accessed during the time specified by the inactive parameter get removed from the cache regardless of their freshness. By default, inactive is set to 10 minutes.
引用: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。