使用Lua从nginx内部删除缓存文件

我正在运行 nginx 并将缓存文件保存到本地磁盘中。我不得不手动清除缓存。我考虑添加一个额外的位置,如 /clear_cache,在那里我可以使用 Lua 直接删除本地文件,因为它可以嵌入 nginx。 我做了一些研究,发现了像 rewrite_by_luacontent_by_lua 的东西。是否可以使用 Lua 访问/修改底层文件系统,或者是否受限制?

点赞
用户7600634
用户7600634

是的,你可以删除文件:

location /clear_cache {
    content_by_lua_block {
        // 创建文件
        local f = assert(io.open("/newFile.txt", 'wb')) -- 以"二进制"模式打开
        f:write(body)
        f:close()

        // 删除文件
        os.remove("/newFile.txt")
    }
}
2020-08-10 20:30:12