在 nginx 中,是否有一种方法可以根据文件的最后修改时间有条件地为文件提供不同的过期标头?例如,如果是foo
在上周内修改的,那么我希望它在几个小时后过期,否则我希望它在几天后过期。
答案1
浏览器可能已经具备您所描述的功能,因此,在 nginx 中实现它实际上没有多大意义。
标准 nginx 具有expires
指令,它允许您使用几种静态无比较偏移样式表达式,但不能使用您描述的动态表达式。
我认为 nginx 中默认编译的任何标准模块都无法满足您的要求——动态过期,并且根据文件修改时间的不同偏移量也会不同。
然而,ngx_http_perl_module
,这是来自 nginx 制造商的官方实验perl
模块,它允许您直接从 nginx 配置文件中使用资源丰富的 perl 语言。
请注意,http_perl_module
由于显而易见的原因(显然需要 perl 等),默认情况下不会编译此功能,并且被认为是高度实验性的 - 请谨慎使用。