如果您只发送JSON对象,那么适当的NGINXconfiguration是什么?

我是一个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

number定义了nginx将创建多少个缓冲区,以及每个缓冲区的size 。 当nginx开始从上游接收数据时,它开始填充这些缓冲区,直到缓冲区满或上游发送EOFEOT 。 如果满足这两个条件中的任何一个,nginx会将缓冲区的内容发送给客户端。

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

以您的JSON响应的平均大小。 现代的磁盘和文件系统可以处理更大的缓冲区大小,但是您应该使用某种功能,通过在数量和大小之间创建一个很好的平衡来加速缓冲过程。

proxy_busy_buffers_size

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

proxy_buffer_size

主缓冲区始终在使用中。 即使你禁用了proxy_buffering ,nginx仍然会填满这个缓冲区,并在它满了或者EOF / EOT立即刷新它。

proxy_max_temp_file_size

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