优化 nginx client_body_buffer_size 以便 Web 应用程序接受文件上传

Has*_*aig 4 optimization nginx

配置 nginx 时,哪些注意事项会影响client_body_buffer_size

我已将其设置10m为用户上传照片和图像模因的网站(有点像9gag)。请注意,也client_max_body_size设置为。10m总的来说,我的推理是网络服务器应该接受图像大小为 10MB 的 POST 请求(网站策略) - 因此这两个指令都应该是10m.

这个推理正确吗?

有人可以阐明影响设置什么值的因素client_body_buffer_size以及client_body_buffer_size(对于我描述的那种网络应用程序)的典型值吗?

如果重要的话,我使用 nginx 作为反向代理。

Mic*_*ton 5

文档说明了什么client_body_buffer_size

设置读取客户端请求正文的缓冲区大小。如果请求正文大于缓冲区,则整个请求正文或仅其一部分将写入临时文件。默认情况下,缓冲区大小等于两个内存页。这是 x86、其他 32 位平台和 x86-64 上的 8K。在其他64位平台上通常是16K。

该内存仅在上传请求时使用;一旦它被传递到后端,内存就会再次释放。如果请求大于此值,它将转到临时文件,并且错误日志中会出现警告。

这意味着您必须有足够的 RAM 来存储任何同时上传的内容,否则您的服务器将开始交换。

这对性能的影响可能不是那么大,除非您内存严重受限并且同时进行大量上传。