我是一名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您在这方面的专业知识将非常感谢这类迷失的灵魂!
发布于 2013-06-19 17:55:33
proxy_buffers
number定义了nginx将创建多少个缓冲区,以及size定义了每个缓冲区有多大。当nginx开始从上游接收数据时,它开始填充这些缓冲区,直到缓冲区已满或上游发送EOF或EOT。如果满足这两个条件中的任何一个,nginx会将缓冲区的内容发送到客户端。
如果客户端读取缓冲区的速度不够快,它将尝试将其中的内容写入磁盘,并在客户端能够接收时发送它们。
取您的JSON响应的平均大小。现代磁盘和文件系统可以处理甚至很大的缓冲区大小,但您应该使用2的幂的东西,并且通过在数量和大小之间创建良好的平衡,您可以加速缓冲过程。
proxy_busy_buffers_size
这些缓冲区已经传递到下游,但尚未完全发送,因此它们不能重用。此指令限制此类缓冲区的最大总大小,从而允许剩余缓冲区用于读取上行响应。
proxy_buffer_size
总是在使用的主缓冲区。即使您禁用proxy_buffering,nginx仍然会填满此缓冲区,并在缓冲区已满或EOF/EOT时立即刷新它。
proxy_max_temp_file_size
该指令控制在缓冲区已满的情况下可以向磁盘写入多少数据(仍然使用内存中的缓冲区,因为您需要它们与磁盘进行通信)。如果所有缓冲区和该文件都已满,nginx将停止从上游读取数据,并必须等待下游获取数据,然后才能继续执行相同的过程。
https://stackoverflow.com/questions/17092722
复制相似问题