我已经设置了一个指令来缓存到 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
该指令的
keys_zone
参数fastcgi_cache_path
指定存储缓存键的内存区域。它的大小间接限制了缓存可以存储的项目数(1 MB ~ 8k 项),但不限制缓存的磁盘大小。要限制磁盘大小,请使用以下
max_size
参数:有关更多详细信息,请参阅fastcgi_cache_path 文档。