大文件完美上传方案(nginx upload module 集群部署方案)

来源:互联网 发布:mac ssh在哪 编辑:程序博客网 时间:2024/04/29 18:26

对于有大量文件上传的需求,有很多的方法可以解决。其中用的比较多的方案就是使用nginx upload  module这个nginx插件。如果仅仅是单机处理,直接在nginx上配置上upload module就可以了。但是实际上,为了满足更多更大的文件上传需求,如何才能做到集群华部署?这是一个可以深入研究的课题。

单机部署有两种模式,如下图: 场景1为没有前端的方式,此种方式最简单。场景二中增加了前端服务器,不过对于nginx upload module没有影响。


这两种方式都存在明显的缺点, 对于文件上传的需求来说,都只能是将文件上传到单一的服务器中。这种方式大大限制了upload module的发展空间。对于大量文件上传请求,远远不能满足并发的需求。本文在这种单机部署的情况,提出了upload module在分布式系统中的集成方式。


一般来说,分布式应用的架构可以简化成以下模式:



针对于这种分布模式,提出以下两种设计方案:

1. 方案1:

   如下图:



2. 方案2:

   如下图:



方案2中nginx前端只能使用ip hash等能够将同一个客户端请求传递都同一个应用服务器的算法,原因为nginx upload module 的ajax获取上传进度的process bar 必须要通过同一个应用服务器处理才行。


1 0
原创粉丝点击