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

Django 如果您只发送JSON对象,那么适当的NGINX配置是什么?,django,nginx,amazon-web-services,amazon-ec2,gunicorn,Django,Nginx,Amazon Web Services,Amazon Ec2,Gunicorn,我是一名iOS开发人员,我的后端都是用Django编写的。我使用gunicorn作为我的HTTP服务器。我有三个工人在一个小EC2实例上运行 我的iOS应用程序不需要任何图像或静态内容。每个请求最多一次发送1-20个JSON对象。每个JSON对象最多有5-10个字段 我对NGINX很陌生。我听说它可以做代理缓冲。我想为速度较慢的客户端添加代理缓冲,但我不知道要用于以下模块的适当特定设置: proxy_buffers Syntax: proxy_buffers number size De

我是一名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\u缓冲区
number
定义nginx将创建多少缓冲区以及每个缓冲区的大小。当nginx开始从上游接收数据时,它开始填充这些缓冲区,直到缓冲区满了,或者上游发送
EOF
EOT
。如果满足这两个条件中的任何一个,nginx将向客户端发送缓冲区的内容

如果客户端读取缓冲区的速度不够快,它将尝试将缓冲区的内容写入磁盘,并在客户端能够接收缓冲区时发送缓冲区

取JSON响应的平均大小。现代磁盘和文件系统甚至可以处理巨大的缓冲区大小,但您应该使用两个缓冲区的功能,通过在数量和大小之间建立良好的平衡,可以加快缓冲过程

proxy\u busy\u buffers\u size
这些缓冲区已经向下传递,但尚未完全发送,因此无法重用。该指令限制此类缓冲区的最大总大小,从而允许剩余缓冲区用于读取上游响应

proxy\u buffer\u size
始终在使用的主缓冲区。即使您禁用了
proxy\u缓冲
,nginx仍将填充此缓冲区,并在缓冲区满或
EOF
/
EOT
时将其刷新

proxy\u max\u temp\u file\u size

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

对于我的情况,您有什么具体的设置建议吗?首先,我如何测量JSON对象的大小?测量文件的大小并确定环境的值。关于如何在Stackoverflow上找到完美的缓冲区大小,有很多很好的答案,例如,顺便说一句。不可能给出一个配置示例。只是因为没有JSON文件,也无法访问运行nginx的计算机。你需要这些信息来创建一个。但是,即使可以访问这些内容,我建议使用默认值。只需激活它。