fastcgi_cache_path keys_zone = WPCACHE:2048m inactive = 480m;磁盘大小

fastcgi_cache_path keys_zone = WPCACHE:2048m inactive = 480m;磁盘大小

我已经设置了一条指令来缓存到 nginx 中的 memdisk:

fastcgi_cache_path /dev/shm/nginx levels=1:2 keys_zone=WPCACHE:2048m inactive=480m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

server {
       #snip other locations...

       # Pass all .php files onto a php-fpm/php-fcgi server.
       location ~ \.php$ {
          try_files $uri =404;
          fastcgi_split_path_info ^(.+\.php)(/.+)$;
          include fastcgi_params;
          fastcgi_index index.php;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          fastcgi_pass php;

          fastcgi_cache WPCACHE;
          fastcgi_cache_valid 200 480m;
          add_header X-Cache $upstream_cache_status;

          fastcgi_cache_methods GET HEAD;
          fastcgi_cache_bypass $skip_cache;
          fastcgi_no_cache $skip_cache;

          #more_clear_headers Server; more_clear_headers "Pragma";
          add_header Z_LOCATION "PHP MAIN"; add_header URI $uri; # DEBUG
    }

}

我明白这应该将缓存大小限制为 2GB,持续 480 分钟,但是现在它已经达到了 2.8GB,超过了这个限制 - 请问我做错了什么吗?

root@www1:/dev/shm/nginx# du -sch *
182M    0
183M    1
177M    2
174M    3
177M    4
172M    5
172M    6
167M    7
174M    8
172M    9
168M    a
171M    b
174M    c
177M    d
172M    e
179M    f
2.8G    total

答案1

keys_zone该指令的参数指定fastcgi_cache_path了用于存储缓存键的内存区域。其大小间接限制了缓存可以存储的项目数(1 兆字节 ~ 8k 个项目),但没有限制缓存的磁盘大小。

要限制磁盘大小,请使用以下max_size参数:

fastcgi_cache_path ... max_size=2048m;

fastcgi_cache_path 文档更多细节。

相关内容