每次尝试上传大文件时,我的日志文件中都会出现以下错误。
a client request body is buffered to a temporary file /var/lib/nginx/body/0000000001
虽然文件上传成功,但我总是得到上面的错误。
我增加了client_body_buffer_size
我1000m
期望上传的最大文件的大小。然而,这只是一个猜测,虽然我没有再收到那个错误,但我想知道这是否是为client_body_buffer_size
?设置的合适值。
如果有人能阐明这个指令以及应该如何使用它,我将不胜感激。
这是警告,不是错误。
[warn]
这就是为什么它在日志中以开头。这意味着上传文件的大小大于为上传保留的内存缓冲区。
该指令
client_body_buffer_size
控制该缓冲区的大小。如果您有能力始终保留 1GB 的 RAM 用于偶尔上传文件,那很好。将上传缓冲在 RAM 中而不是磁盘上的临时文件中是一种性能优化,尽管对于如此大的上传,额外几秒钟可能并不重要。如果您上传的大部分内容都很小,那么这可能是一种浪费。
最后,只有您才能真正决定合适的尺寸。
如果你不想让 NginX 将主体内容存储在一个临时文件中,你可以设置你的配置。像这样:
如果您将这两个配置设置为相同的最大值。大小(分别以 k、M 或 G 表示 kB、MB 或 GB),您将防止 NginX 创建临时文件。文件。
有关详细信息: http: //nginx.org/en/docs/http/ngx_http_core_module.html#client_body_buffer_size 和 http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size