在本月末到期一个静态HTML文件。

我有几个静态HTML文件,每月1号生成,有效期至本月底。我想在月底时过期它们,但不知道如何告诉nginx这样做。

我可以使用Lua或其他语言在配置文件中计算该日期,还是需要太多的计算能力?

目前,我正在使用此配置在7天后将它们过期。我需要改变什么来在当月的最后一天23:59过期?

location ~* \.(html|HTML)$ {
  gzip_static on;
  add_header  Cache-Control public;
  expires 7d;
}
点赞
用户6672727
用户6672727

在 Lua 中,你可以简单地编写一个函数。

-- day 是一个数字格式的日期
-- file 可以是一个文件名字符串,也可以是包含多个文件名字符串的数组
function expire(file, day, time_)
    day = day or 1 -- 设置默认日期为1
    -- 获取今天是几号并转换成数字,然后和 day 进行比较
    -- 获取现在的小时和分钟并和 time_ 进行比较
    if tonumber(os.date("%d")) == day and os.date("%H:%M") == time_ then
        -- 确定 file 是一个数组
        if type(file) == 'table' then
            -- 遍历数组中的文件名字符串
            for _, filename in pairs(file) do
                -- 确保这是一个字符串
                if type(filename) == 'string' then
                    -- 删除文件
                    os.remove(filename)
                end
            end
        else
            -- 确保 file 是一个字符串
            if type(file) == 'string' then
                -- 删除文件
                os.remove(file)
            end
        end
    end
end

-- 调用函数
expire("somefile.txt", 31, "23:59")

更多关于 os.date 的信息,请访问 https://www.lua.org/pil/22.1.html

2016-08-07 07:30:57