nginx临时文件路径必须在nginx.conf中显式配置,不可通过编译参数修改;client_body_temp_path、proxy_temp_path等需用绝对路径,独立挂载ssd并设置正确权限与清理机制。

Nginx 源码安装时,临时文件路径不能通过编译参数修改,而必须在 nginx.conf 中显式配置各模块对应的专用路径。这些路径与安装目录(--prefix)无关,也不受 --conf-path 影响,属于运行时行为控制。
client_body_temp_path:处理上传体的暂存位置
用于大文件上传时超出内存缓冲(client_body_buffer_size)的部分。
- 必须用绝对路径,例如
/data/nginx/client_body - 建议挂载独立 SSD 分区,避免与系统盘争抢 I/O
- 配置格式支持子目录层级:
client_body_temp_path /data/nginx/client_body 1 2;(生成最多 65536 个二级子目录) - 确保 Nginx 工作用户(如
nginx或www-data)对该路径有读写权限:chown -R nginx:nginx /data/nginx/client_body chmod 750 /data/nginx/client_body
proxy_temp_path:代理响应暂存路径
后端返回内容超过 proxy_buffer_size + proxy_buffers 总和时写入此处。
- 不可与
client_body_temp_path共用磁盘,否则上传和反向代理会相互干扰 - 若服务视频、大附件等,建议预留 ≥50GB 空间
- 示例配置:
proxy_temp_path /data/nginx/proxy_temp 1 2;
- 验证方式:返回一个大于缓冲区的文件(如 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 路径需提前创建,并由 Nginx 工作用户拥有
- 挂载磁盘时建议加
noatime参数,减少元数据写入 - 配合 logrotate 或定时脚本清理过期
.tmp文件,防止 inode 耗尽 - 监控各路径磁盘使用率,避免因空间不足导致请求失败
不复杂但容易忽略











