Nginx会在5 MB数据之后截断响应

Nginx会在5 MB数据之后截断响应,nginx,nginx-reverse-proxy,Nginx,Nginx Reverse Proxy,使用Nginx-v1.10.3(Ubuntu),我对虚拟主机有以下配置: server { listen 443 ssl; listen [::]:443 ssl; include snippets/ssl.conf; server_name myserver.example.com; proxy_buffering off; proxy_store off; location / { include proxy_params; client

使用Nginx-v1.10.3(Ubuntu),我对虚拟主机有以下配置:

server {
  listen 443 ssl;
  listen [::]:443 ssl;

  include snippets/ssl.conf;

  server_name  myserver.example.com;

  proxy_buffering off;
  proxy_store off;

  location / {
    include proxy_params;
    client_max_body_size 100m;
    proxy_pass http://127.0.0.1:3033;
    proxy_buffering off;
  }

}
被代理的应用程序是rails应用程序。我可以上传高达100MB的文件

include snippets/ssl.conf
仅包含证书

include proxy_params;
包含以下指令:

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
当我通过ssh隧道端口3033连接到后端时,我可以下载文件,它们是相同的

当通过代理连接时,无论文件类型或原始大小如何,文件总是在5242880字节后被截断,即5MB

截断是一致的。磁盘上有足够的可用空间,有足够的可用索引节点。nginx日志中没有错误消息

当尝试加载31MB文件(calibre安装…)时,访问日志显示:

AAA.BBB.CCC.DDD - - [08/Nov/2018:16:36:59 +0100] "GET /rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaEpJaDFsVlVkdlVFaFFha1E1V2tKUk5HbG9RMVU0Vm1JNGJVY0dPZ1pGVkE9PSIsImV4cCI6IjIwMTgtMTEtMDhUMTU6NDE6NTkuMDMyWiIsInB1ciI6ImJsb2Jfa2V5In19--9ba3dd25c32c16ce10ef884b80f9f6d3705717f2/calibre-3.33.1.dmg?content_type=application%2Fx-bzip&disposition=attachment%3B+filename%3D%22calibre-3.33.1.dmg%22%3B+filename%2A%3DUTF-8%27%27calibre-3.33.1.dmg HTTP/1.1" 200 5253135 "https://myserver.example.com/supplies/2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
因此,显示的文件大小已被截断

我已经完成了我的家庭作业,查看了nginx文档,也搜索了其他所有用户的错误日志,随机截断或只截断某些文件类型


非常感谢您的帮助

我刚从@amiuhle那里得到一个答案,这个答案是:

使用proxy_http_版本1.1

默认情况下,nginx使用HTTP 1.0进行代理,这不支持 分块传输编码


我在使用ActiveRecord时遇到了同样的问题,您找到了解决方案吗?