Nginx 无标准“transient”目录,实际指 client_body_temp、proxy_temp 等由配置驱动的运行时临时目录;它们按缓冲阈值动态生成,需通过调优缓冲参数减少落盘,并用 find 安全清理陈旧文件。
Nginx 并没有名为 transient 的标准目录。你提到的“transient 文件夹”,大概率是混淆了术语,实际指的是 Nginx 目录结构中用于存放运行时临时数据的 temp 类目录,例如:
client_body_tempproxy_tempfastcgi_tempscgi_tempuwsgi_temp这些才是 Nginx 最新定义、配置驱动、真实存在的“运行时临时数据存储区”。它们不叫 transient,也不在安装后自动创建——只有对应模块启用且触发落盘条件时,才由 worker 进程动态生成文件。
下面从三个关键角度说明如何科学管理这类临时数据:
临时文件不是每次请求都产生,而是满足特定缓冲条件时才落盘:
client_body_temp:仅当上传体超过 client_body_buffer_size,且未被 client_max_body_size 拦截时写入proxy_temp:仅当后端响应超出 proxy_buffer_size + proxy_buffers 总和,且 proxy_buffering on(默认)时写入fastcgi_temp 等同理,依赖 fastcgi_buffering 和缓冲大小配置所有临时文件由 Nginx 自动创建与回收:连接关闭、超时或请求结束时即释放。残留文件通常意味着异常中断(如客户端断连、后端崩溃、worker 被 kill)。
与其等文件生成再清理,不如从源头压缩落盘概率:
client_body_buffer_size 设为 128k(兼顾表单+小图),纯 API 可设 8k–16kproxy_buffers 8 128k; proxy_buffer_size 128k; 提升内存缓存容量proxy_buffering off; 启用流式转发client_body_timeout 30s; proxy_read_timeout 90s; 防止僵死文件驻留这些调整能让 80% 以上常规请求全程走内存,根本不会触达磁盘。
必须避免 rm -rf 整个 temp 目录——可能误删正在使用的文件,导致 500 或连接中断:
nginx -t -c /etc/nginx/nginx.conf 查 *_temp_path 实际配置lsof +D /var/cache/nginx/proxy_temp(正常应无输出或极少)find 删除修改时间超过阈值的空闲文件find /var/cache/nginx/{client_body,proxy,fastcgi}_temp -type f -mmin +45 -delete
/dev/null 即可注意:只删文件,不删子目录;Nginx reload 或重启时会自动重建所需层级结构。
不复杂但容易忽略