Nginx设置fastcgi_cache_valid

我一直在试图设置2个不同的caching时间。 我需要一个单一的请求微caching。 而所有其他的请求应该被caching更长的时间。 所有的请求必须去位置块,以便请求被传递给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? 也尝试过“2”。 我不允许从variables中设置它吗? 任何解决方法?