我一直在尝试设置 2 个不同的缓存时间。我需要一个微缓存来处理单个请求。所有其他请求都应缓存更长时间。所有请求都必须转到位置块,以便将请求传递给 PHP。
运行 nginx -t 时收到错误:
nginx:[emerg] 无效的时间值“$cache_time”
这是我的 nginx conf 服务器块的一部分:
set $cache_time 5m;
if ($request_uri ~ "myurl/\d*"){
set $cache_time 2s;
}
location ~ \.php {
fastcgi_cache MYCACHE;
fastcgi_cache_valid 200 $cache_time;
fastcgi_no_cache 0;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index /index.php;
include /etc/nginx/fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
为什么显示无效的 $cache_time?还尝试了“2s”。我根本就不能从变量中设置它吗?有什么解决方法吗?