新手问题 使用 Unicorn 的 ROR 项目,提供文件下载的问题

lup165340815 · March 18, 2015 · Last by reyesyang replied at March 18, 2015 · 1977 hits

如题,我远程请求下载该项目中的某个文件 (18MB),每次下到 15mb 的时候就显示连接中断,停止下载。一开始以为是 unicorn 用了服务器上的 nginx 代理,在 nginx 的配置文件中折腾了一番没用。后来发现在 unicorn 的配置文件中忘了添加 timeout 参数,缺省好像是 65s。我的理解是下载文件的时候考虑到网速的因素,服务器响应时间超过了 unicorn 设置的最大值因此连接中断。将此参数设为 300 后可以下载了 (200kb/s)。但如果是一个比较大的文件 (几个 G),不可能用这种蹩脚的方法。是否有利用单独开辟进程 stream 传输的方式或者 gem 来实现?

动态文件?你能确实文件大小,就可以先生成在某个目录吧,然后直接走 nginx

#1 楼 @xxqfamous 文件大小不确定。你的意思是文件上传成功后通过请求 nginx 服务器下载该文件?那会不会也有同样的问题呢?

文件的问题,交给 Nginx 处理

#3 楼 @huacnlee 好的,我试试看

在 config/environments/production.yml 中开启 config.action_dispatch.x_sendfile_header 配置

You need to Sign in before reply, if you don't have an account, please Sign up first.