主服务器配置转发到子机webman 返回数据错误
实测500kb大小文件没有任何问题, 可以下载
但是3MB的文件就不行了 chrome浏览器直接下载未完成
使用curl方式 去获取 只能读到2MB大小
如果将主服务器nginx转发到子机nginx 6MB大小的文件都没问题
所以判断结论是webman的问题
主服务器nginx配置
location / {
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://10.0.0.102:8787;
}
return response()->download(public_path() . '/files/'.$fileName, $fileName);
Workerman version:4.1.10 PHP version:8.2.5
应该是 nginx 代理 缺少 keepalive 10240; 长链接的问题
有效,
不带这个参数,ngxin和webman也是短连接。好使了就行
不转发直接访问下载试试呢,我本地试了一个2m以上的,没啥问题
就是nginx 和 webman 没有长链接
嗯,大于2m是分段发的
超过2MB的文件,每次都是1MB这样发送的,这样会发送很多次,连接就需要长时间存在。
2MB以下文件,都是一次性发送过去的。