nginx 的两个不同 fastcgi_cache_valid 值

Posted

技术标签:

【中文标题】nginx 的两个不同 fastcgi_cache_valid 值【英文标题】:two differents fastcgi_cache_valid value for nginx 【发布时间】:2022-01-02 14:18:38 【问题描述】:

我在 nginx 中使用fastcgi_cache,我想为不同的请求使用两个不同的时间段缓存。

例如:

    if ($request_uri ~* "/(api/1|api/2)")
        
           set $no_cache 0;
           set $cache_valid 5m;
        
    ...
    
    fastcgi_cache_valid 200 $cache_valid; // it's not work
    
    fastcgi_cache_valid 200 1m; // it's work

如何使用两个不同的fastcgi_cache_valid 时间值?

【问题讨论】:

【参考方案1】:

您不能将变量与fastcgi_cache_valid 指令一起使用。如果您的上游 API Web 应用程序在您的控制之下,您最好让它为 /api/1/api/2 和其他不应缓存的请求返回 X-Accel-Expires: 0 HTTP 标头。如果不是,我认为您唯一的方法是使用具有不同 fastcgi_cache_valid 指令的两个不同的 location 块。

【讨论】:

以上是关于nginx 的两个不同 fastcgi_cache_valid 值的主要内容,如果未能解决你的问题,请参考以下文章

Nginx模块fastcgi_cache的几个注意点 转

摘自张宴的"实战:Nginx"使用nginx的fastcgi_cache缓存php输出的内容

深入Nginx + PHP 缓存详解

fastcgi_cache

centos7.4 搭建nginx反向缓存代理

戏说Nginx