如何在Nginx反向代理下设置同步传输?
我正在使用Nginx作为反向代理。当我把一个文件上传到Nginx时,它似乎会先把整个文件存储在本地,然后再把这个文件转发到后端服务器,等到整个文件都接收完了才开始转发。有没有办法让Nginx在接收数据的同时就把数据转发出去呢?
2 个回答
0
你说的是流式传输。是的,你可能需要调整一下proxy_buffering、proxy_store和/或proxy_temp_file_write_size这些设置:
http://wiki.nginx.org/HttpProxyModule#proxy_store
http://wiki.nginx.org/HttpProxyModule#proxy_buffering
http://wiki.nginx.org/HttpProxyModule#proxy_temp_file_write_size
附注:因为nginx是单线程的,所以你真的需要使用这些功能(否则一个上传可能会让整个服务器卡很久)。
1
这个问题在这个链接上已经有了否定的回答: nginx 文件上传流媒体与 proxy_pass
上面问题的回答来自于维护 nginx 代码的人。所以现在你可以先不考虑这个了。
如果你真的很在意不想让文件传输两次的话,可以尝试使用 nginx 的上传模块,前提是你能控制你的上游服务器。http://wiki.nginx.org/HttpUploadModule。