46

我将 nginx 配置为我的 node.js 应用程序的反向代理,用于使用 proxy_pass 指令上传文件。它可以工作,但我的问题是 nginx 等待整个文件主体上传,然后再将其传递到上游。这给我带来了问题,因为我想在我的应用程序中跟踪上传进度。知道如何配置 nginx 以便将文件主体实时流式传输到上游吗?

4

3 回答 3

40

没有办法(至少到目前为止)。在 nginx 开始将其发送到上游之前,完整的请求将始终被缓冲。要跟踪上传的文件,您可以尝试上传进度模块。

更新:在 nginx 1.7.11 中, proxy_request_buffering指令可用,它允许禁用请求正文的缓冲。不过应该小心使用,请参阅文档。

于 2012-09-07T00:10:19.000 回答
5

Tengine(来自 nginx 的一个分支)通过将 proxy_request_buffering 设置为 off 来支持无缓冲上传。

http://tengine.taobao.org/document/http_core.html

更新:在 nginx 1.7.11 中, proxy_request_buffering指令可用,正如上面提到的@Maxim Dounin

于 2014-07-11T09:12:23.783 回答
-3

我怀疑:

proxy_buffering off;

是您需要的,请参阅http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffering

于 2012-09-05T13:39:11.600 回答