我是nginx的新手,但我熟悉低级HTTP和apache.当我尝试执行multipart/form文件上传时,nginx会将一些客户端请求主体写入磁盘,但永远不会完成,并且它永远不会将其传递给down/upstream脚本.
我的具体设置是我将nginx与/ dyn重定向到localhost:1337,其中node.js实例正在侦听.它工作...除了文件上传处理程序.在配置中还有一个/ debug,它被重定向到localhost:1338,后者转到一个简单的转储服务器.
我将错误日志处理更改为"info".它报告将客户端主体存储到文件中,当我进行exampline时,它几乎与我预期的一样:
--boundary_.oOo._MjM5NzEwOTkxMzU2MjA0NjM5MTQxNDA3MjYwOA==
Content-Type: image/jpeg
Content-Disposition: form-data; name="file"; filename="dccde7b5-25aa-4bb2-96a6-81e9358f2252.jpg"
<binary data, ~89k>
Run Code Online (Sandbox Code Playgroud)
这个文件的问题太短了,当文件是88,963字节时只有81,920字节,它应该是88,963 +上面的标题....但这只是它的一半.有两个文件(大约相同的大小)进来,所以我希望该文件约为~160k.nginx正在做的是重新分配请求的http级别,Content-length然后将该头传递给脚本,就是这样,当然我的脚本抱怨它永远不会发现--boundary_.oOo._MjM5NzEwOTkxMzU2MjA0NjM5MTQxNDA3MjYwOA==当我对我的调试服务执行相同的请求而没有中间的nginx时,它是正确的发送数据,如果http Content-length是一个合适的186943字节(两个文件大约80k,所以这是有道理的)
我的nginx配置是默认的,除了我在这里提到的.
编辑:经过一些实验,客户端主体目录中的所有文件都是81920字节
| 归档时间: |
|
| 查看次数: |
1120 次 |
| 最近记录: |