gpt4 book ai didi

用于大型POST请求的Nginx client_body_buffer_size和client_max_body_size优化

转载 作者:行者123 更新时间:2023-12-04 11:21:53 72 4
gpt4 key购买 nike

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

来自client_body_buffer_size的文档

If the request body size is more than the buffer size, then the entire (or partial) request body is written into a temporary file."



这意味着,每当我收到默认请求时,它将被写入磁盘。

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

client_body_buffer_size设置得如此之高会产生任何后果吗?这会影响从未收到如此大请求的网站吗?

最佳答案

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

请注意,您还可以在特定的服务器或位置(请参阅Context)上设置不同的client_max_body_sizeclient_body_buffer_size,以便您的网站不允许上传20MB。

这是一个interesting thread on client_body_buffer_size ,它还提醒您,如果客户端主体大于您的client_body_buffer_size,则nginx变量$ request_body将为空。

关于用于大型POST请求的Nginx client_body_buffer_size和client_max_body_size优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35005130/

72 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com