proxy_temp_file_write_size控制Nginx代理时向磁盘临时文件单次写入的字节数,仅在proxy_buffering on且响应超出内存缓冲时生效;默认32k,推荐设为64k–128k以平衡I/O频次与内存压力,并需同步配置proxy_buffers、proxy_max_temp_file_size及独立SSD上的proxy_temp_path。

proxy_temp_file_write_size 控制 Nginx 在代理响应时,向临时文件写入数据的单次缓冲大小。
作用场景
当后端响应体较大、且 proxy_buffering 开启时,Nginx 不会立即将全部响应内容发给客户端,而是先缓存到磁盘临时文件中(位于 proxy_temp_path 指定目录)。此指令决定每次往该临时文件写多少字节。
- 值过小:频繁系统调用写磁盘,增加 I/O 开销和延迟
- 值过大:可能造成内存暂留较多未落盘数据,或在高并发下临时文件写入延迟上升
- 默认值为 32k,适合多数中等流量场景
与相关指令的关系
它不独立生效,需配合其他缓冲控制参数协同工作:
FastAPI + Flask 混合部署最佳实践,解决路由定义、API 代理等常见问题,适用于同时运行 FastAPI API 与 Flask 前端的场景。
- proxy_buffering on 必须启用,否则不使用临时文件
- proxy_buffers 决定内存缓冲区数量和大小,内存满后才刷入临时文件
- proxy_max_temp_file_size 限制单个临时文件最大容量,防止磁盘撑爆
- proxy_temp_path 必须存在且 Nginx 进程有写权限,否则降级为直接流式转发
调优建议
调整前建议观察实际响应体大小分布和磁盘 I/O 负载:
- 若后端常返回 1–5MB 文件(如图片、PDF),可将值设为 64k 或 128k,减少写次数
- 若磁盘较慢(如 HDD)或 I/O 繁忙,适当增大该值能摊薄 syscall 开销
- 若内存紧张或请求极多,保持默认或略减(如 16k),避免单次写入占用过多页缓存
- 修改后需重载配置(
nginx -s reload),无需重启
验证是否生效
可通过以下方式确认临时文件写入行为:
- 检查 proxy_temp_path 目录下是否有活跃的临时文件(文件名形如
0000000001) - 用 strace -p $(pgrep nginx) -e write 观察 worker 进程写入 size 是否接近设定值
- 配合 nginx stub_status 或 Prometheus exporter 查看
ngx_http_proxy_module相关指标变化

















