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

django – 如果你只发送JSON对象,那么适当的NGINX配置是什么?

我是iOS开发人员,我的后端都是用Django编写的.我使用gunicorn作为我的HTTP服务器.我有三个工人在一个小EC2实例上运行.

我的iOS应用不需要任何图像或静态内容.最多,我每次请求一次发送1-20个JSON对象.每个JSON对象最多包含5-10个字段.

我对Nginx很新.我听说它可以做代理缓冲.我想为慢速客户端添加代理缓冲,但我不知道用于以下模块的适当特定设置:

proxy_buffers
Syntax:     proxy_buffers number size
Default:    8 4k|8k
Context:    http server location
Reference:  proxy_buffers


proxy_busy_buffers_size
Syntax:     proxy_busy_buffers_size size
Default:    8k|16k
Context:    http server location
Reference:  proxy_busy_buffers_size

proxy_buffer_size
Syntax:     proxy_buffer_size size
Default:    4k|8k
Context:    http server location
Reference:  proxy_buffer_size

我知道如何使用的唯一设置(非常悲伤)如下所示:

proxy_buffering
Syntax:     proxy_buffering on | off
Default:    on
Context:    http server location
Reference:  proxy_buffering

这种失落的灵魂将非常感谢您在这方面的专业知识!

最佳答案:

proxy_buffers

该数字定义了Nginx将创建的缓冲区数量以及每个缓冲区的大小.当Nginx开始从上游接收数据时,它开始填充这些缓冲区,直到缓冲区已满或上游发送EOF或EOT.如果满足这两个条件中的任何一个,Nginx会将缓冲区的内容发送到客户端.

如果客户端没有足够快地读取缓冲区,它将尝试将它们的内容写入磁盘并在客户端能够接收时发送它们.

获取JSON响应的平均大小.现代磁盘和文件系统甚至可以处理巨大的缓冲区大小,但是您应该使用2的强大功能,并通过在数量和大小之间创建良好的平衡来加速缓冲过程.

proxy_busy_buffers_size

这些缓冲区已经传递到下游但尚未完全发送,因此无法重复使用.该指令限制了此类缓冲区的最大总大小,因此允许使用剩余的缓冲区来读取上游响应.

proxy_buffer_size

始终在使用的主缓冲区.即使你禁用了proxy_buffering,Nginx仍然会填满这个缓冲区,并在它满或EOF / EOT时立即刷新它.

proxy_max_temp_file_size

如果缓冲区已满,则该指令控制可以将多少数据写入磁盘(仍然使用内存缓冲区,因为您需要它们与磁盘通信).如果所有缓冲区和此文件都已满,Nginx将停止从上游读取,并且必须等待下游才能获取数据,然后才能继续执行相同的过程.

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

相关推荐