File upload 在nginx中禁用请求缓冲
nginx似乎会在将请求传递到updstream服务器之前对其进行缓冲,而在大多数情况下,这对我来说是正常的,但这非常糟糕:) 我的情况是这样的: 我将nginx作为前端服务器,代理3台不同的服务器:File upload 在nginx中禁用请求缓冲,file-upload,nginx,asyncfileupload,gevent,File Upload,Nginx,Asyncfileupload,Gevent,nginx似乎会在将请求传递到updstream服务器之前对其进行缓冲,而在大多数情况下,这对我来说是正常的,但这非常糟糕:) 我的情况是这样的: 我将nginx作为前端服务器,代理3台不同的服务器: apache与一个典型的php应用程序 shaveet(一个开源comet服务器)由我用python和gevent构建 使用gevent再次构建的文件上载服务器,该服务器将上载代理到rackspace cloudfiles 在接受来自客户端的上载时 #3是问题所在,现在我遇到的是,nginx缓冲所
我使用nginx的原因是要有3个不同的域和一个IP,如果我不能做到这一点,我将不得不将fileupload服务器移动到另一台机器上。我会研究haproxy来满足这一需求 根据,他们建议您使用nginx来实际缓冲客户端并防止slowloris攻击。因此,这种缓冲可能是一件好事。然而,在我提供的链接中,我确实看到了一个关于删除代理缓冲区的选项,不清楚这是否在nginx中,但看起来好像是这样。当然,这是假设你有Gunicorn在运行,而你没有。也许它对你仍然有用 编辑:我做了一些研究,nginx中的缓冲区禁用是针对出站的长轮询数据。Nginx在其站点上声明,入站请求在向上游发送之前必须进行缓冲 “请注意,当使用HTTP代理模块(或甚至使用FastCGI)时,整个客户端请求将在传递到后端代理服务器之前在nginx中进行缓冲。因此,如果上载进度表通过测量后端服务器接收的数据来工作,则无法正常工作。”
一旦实现了这个[1]特性,Nginx就能够充当反向代理,而无需缓冲上传(bug客户端请求)。 它应该降落在1.7,这是目前的主线 [1] 更新 此功能自1.7.11起通过标志提供
proxy_request_buffering on | off代码>
自版本nginx-1.7.11起,现在可在nginx中使用
见文件
要禁用缓冲上载,请指定
proxy_request_buffering off;
每个人都知道,根据#nginx和#lighttpd中的ppl,不可能同时在这两个服务器上禁用请求缓冲:(对于您的#3,您是否使用gevent<1.0中内置的http服务器支持?最新的gevent没有http支持,只有wsgi,所以我想知道该使用什么。我想我可以使用Django…如果您可以为服务器分配多个IP,那么就可以将专用上载服务器绑定到第二个IP。结果是,您需要单独的主机名来进行备份。)这可能会导致客户端上出现跨域策略问题。HA代理不支持SSL,其他原因是AFAIK it仅在保持活动会话中处理第一个请求的头。2015年3月24日发布的1.7.11版提供了此功能