微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

针对大型POST请求的Nginx client_body_buffer_size和client_max_body_size优化

我有一个接收每个传输1K到20MB数据的API。 我也有一个网站,一次只能收到less于10K的传输。 API和网站都在同一个Nginx代理服务器后面。

来自client_body_buffer_size的文档

如果请求正文大小大于缓冲区大小,则整个(或部分)请求正文被写入临时文件

这意味着,任何时候我收到一个请求通过认,它将被写入磁盘。

Nginx位置的最有效的正则expression式

当url在Nginx中包含空字符时如何重写

Nginx + PHP的fastcgi无法打开文件,权限被拒绝

在读取来自上游的响应报头时debugging着名的 – 在stderr中发送的FastCGI:“主脚本未知”

Nginx – 没有指定input文件。 – PHP快速/ CGI

鉴于我可以收到大的有效载荷,最好是将client_body_buffer_size设置为client_max_body_size ,对我来说是20MB? 我认为这会阻止Nginx每次将请求写入磁盘。

是否有任何设置client_body_buffer_size如此之高的后果? 这会影响网站,从来没有收到这么大的要求?

订阅新的邮件nchan

在ISPConfig3上运行Symfony2

如何使用PHPNginx

使用Nginx重写许多单独的URL

我如何configurationreact-router与Nginx / cherrypy和我目前的reactjs应用程序

我建议使用较小的client_body_buffer_size (大于10k,但不要太多,也许是16k的x64认值),因为更大的缓冲区可以缓解DoS攻击载体,因为您会为它分配更多的内存,而不是更便宜的磁盘。

请注意,您也可以在特定的服务器或位置上设置不同的client_max_body_size和client_body_buffer_size (请参阅上下文 ),以便您的网站不允许20MB上传

这里有一个关于client_body_buffer_size的有趣的线程 ,它还提醒说,如果客户端主体大于client_body_buffer_size ,那么Nginx变量$ request_body将是空的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐