nginx反向代理webman大文件上传报错

xiaoz

nginx反向代理webman 超过15M的文件就返回502报错,查看nginx日志:

sendfile() failed (32: Broken pipe) while sending request to upstream

nginx的配置:

sendfile       on;
sendfile_max_chunk 2m;
client_body_buffer_size 1M;
client_max_body_size 200M;

php.ini也得post_max也设置的200M

依然无效,不知道是nginx的原因还是php哪里没设置对。有遇到过的吗?


已经定位到原因,参考:https://www.workerman.net/doc/webman/request.html

需要修改config/server.php

文件被上传后会被命名为一个临时文件,类似 /tmp/workerman.upload.SRliMu
上传文件大小受到defaultMaxPackageSize限制,默认10M,可在config/server.php文件中修改max_package_size更改默认值。
请求结束后临时文件将被自动清除
如果请求没有上传文件则$request->file()返回一个空的数组
上传的文件不支持 move_uploaded_file() 方法,请使用 $file->move()方法代替,参见下面的例子

1940 3 2
3个回答

xiaoz

和社区的这个问题:https://www.workerman.net/q/8804 几乎一样。

owenzhang

不错,我也记录下,后期可能用到,哈哈哈

  • 暂无评论
payne
  • xiaoz 2022-08-24

    谢谢,空了试试。建议多整点演示代码呀。发现好多第三方插件都没演示代码,官方的插件基本都给了演示代码。

  • payne 2022-08-24

    全自动接管的,不用写后端代码,前端参照示例文件调用就行

年代过于久远,无法发表回答
🔝