Caching nginx:将条件过期标头添加到fastcgi_缓存响应

Caching nginx:将条件过期标头添加到fastcgi_缓存响应,caching,nginx,fastcgi,Caching,Nginx,Fastcgi,使用nginx fastcgi_缓存时,我缓存HTTP 200响应的时间比任何其他HTTP代码都长。我希望能够基于此代码有条件地设置expires标头 例如: fastcgi_cache_valid 200 302 5m; fastcgi_cache_valid any 1m; if( $HTTP_CODE = 200 ) { expires 5m; } else { expires 1m; } (在一个位置容器内)是否可能出现上述情况?当然可以,从 所以您可以在

使用nginx fastcgi_缓存时,我缓存HTTP 200响应的时间比任何其他HTTP代码都长。我希望能够基于此代码有条件地设置expires标头

例如:

fastcgi_cache_valid   200 302  5m;
fastcgi_cache_valid   any      1m;

if( $HTTP_CODE = 200 ) {
  expires 5m;
}
else {
  expires 1m;
}
(在一个位置容器内)是否可能出现上述情况?

当然可以,从

所以您可以在if语句中匹配$sent\u http\u响应

但是有一个问题,因为没有列出是否作为expires指令的允许上下文

您可以在if块中设置一个变量,然后像这样引用它:

set $expires_time 1m;
if ($send_http_response ~* "200") {
  set $expires_time 5m; 
}
expires $expires_time;
set $expires_time 1m;
if ($send_http_response ~* "200") {
  set $expires_time 5m; 
}
expires $expires_time;