nginx临时文件路径需按功能模块分别配置,不可统一设置:client_body_temp_path用于上传体暂存,proxy_temp_path用于代理响应暂存,fastcgi/scgi/uwsgi_temp_path分别对应不同后端协议,均须使用绝对路径、独立磁盘、专用权限,并配合定时清理与磁盘监控。

client_body_temp_path:处理客户端上传请求体
用于大文件上传时暂存超出内存缓冲的请求体(如 POST 表单、图片、分片数据)。
- 必须用绝对路径,建议挂载独立 SSD 分区,例如 /data/nginx/client_body
- 配置示例:client_body_temp_path /data/nginx/client_body 1 2; —— 两级子目录(最多 65536 个目录),避免单目录文件过多影响 inode 查找
- 确保 Nginx worker 用户(如 www-data)对该路径有读写权限:chown -R www-data:www-data /data/nginx/client_body
- 挂载该磁盘时加 noatime 参数,减少元数据 I/O
proxy_temp_path:代理响应暂存(后端返回大内容时)
当后端响应超过 proxy_buffer_size + proxy_buffers 总和,或禁用缓冲时,Nginx 会把响应体写入此处。
- 语法相同:proxy_temp_path /data/nginx/proxy_temp 1 2;
- 不要和 client_body_temp_path 共用同一路径或磁盘,否则上传和响应争抢 I/O
- 若处理视频、大附件等场景,该路径所在磁盘需预留充足空间(建议 ≥50GB 起)
- 验证方式:返回一个大于缓冲区的大文件(如 10MB),然后检查该目录下是否生成类似 /a/1f/xxx.tmp 的文件
fastcgi_temp_path、scgi_temp_path、uwsgi_temp_path
分别对应 PHP-FPM、SCGI、uWSGI 等后端协议的临时响应暂存,语法完全一致:
- fastcgi_temp_path /data/nginx/fastcgi_temp 1 2;
- scgi_temp_path /data/nginx/scgi_temp 1 2;
- uwsgi_temp_path /data/nginx/uwsgi_temp 1 2;
- 它们彼此隔离,也应各自分配专用路径,避免混用
权限、清理与监控要点
临时文件不会自动清理干净,残留风险高,必须主动运维。
- 所有 *_temp_path 目录创建后,立即设权限:chmod 700 /data/nginx/xxx_temp
- 加定时任务清理陈旧文件,例如每 15 分钟执行:
find /data/nginx/client_body -type f -mmin +30 -delete - 监控各路径所在磁盘使用率,超 85% 触发告警;同时用 iostat -x 1 关注对应设备的 %util 和 await,持续高于 70% 或 20ms 就要干预
- 重启 Nginx 不会清空旧临时文件,上线前务必手动检查











