http-用node.js替换Nginx来导入大文件吗?
我已经找到了Event loop for large files?,但这主要是关于下载的.我从那篇文章中得出的结论是,node.js可能已经足够进行下载,但是Nginx是一个经过艰苦奋战的解决方案,“永不中断”. 但是上传呢?我们正在上传大量文件.我们进行基因组学研究,人类基因组数据集的大小高达200GB.据我所能确定的,Nginx总是在将完整的请求,标头和正文转发给后端之前,对整个请求进行缓冲.我们的内存用完了,无法同时处理三个上载. 我们的应用程序中运行着大量小型服务器,“做一件事情并做得很好”,其中一台用于处理基因组数据的上传(以及将类型转换为内部格式),另一台提供套接字. .io处理,以使客户对我们的应用程序生态中的上传进度和其他事件进行评估.其他人则处理身份验证,客户数据处理和普通在线媒体服务. 如果我正确阅读了节点的http / https模块的代码,则node.js将是处理这些问题的理想工具:它本身就是HTTP / 1.1,因此websocket传递将起作用,并且它会处理(请求,响应)在处理了HTTP HEAD之后将元组添加到处理程序函数,但保持BODY不变,直到处理程序函数绑定request.on(‘data’,…)事件以耗尽BODY缓冲区. 我们为我们的服务提供了一个细分的,基于url的名称空间:“ / import”,“ / events”,“ / users”,“ / api”,“ / media”等.Nginx仅正确处理了后三个.用node.js应用程序替换Nginx来处理所有这些操作是否困难或不合适?还是有一些晦涩的反向代理(Nginx,Pound和Varnish都有类似的限制),它们已经可以满足我的所有需求了? 最佳答案 如其他答案所述,formidable是用于处理上载的非常可靠的库.默认情况下,它缓冲到磁盘,但是如果需要,您可以覆盖该行为并处理数据.因此,如果您想编写自己的代理,那么node.js强大将是使上传的内容流式传输的绝佳方法.您也可以尝试node-http-proxy,但是不幸的是,我不确定它如何缓冲.您还应该考虑到它没有像Nginx那样被广泛使用,因此我不确定我有多信任它直接暴露在野外(库本身并不是一个大问题,但使用Node则更多. 您是否看过Nginx的 (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 使用空格()为URL创建Nginx重定向
- ruby-on-rails-如何在Puma和Capistrano上部署Rails应用程序
- django – 413请求实体太大Web服务器连接已关闭|错误64
- Meteor,WebSocket,Nginx 502错误
- Nginx无法从docker 1.10.1中的嵌入式DNS获取主机
- 从源安装nginx-1.7.8时,Chef :: Exceptions :: ChecksumMis
- 没有断行不能输出大的字符串块(nginx php)
- linux – 无法启动php-fpm – “无法为用户’apache’获取u
- ubuntu – 使用nginx工作的Web服务器,直到创建.save文件
- node.js – 你应该如何处理auth并在微服务之间共享用户信息
- ruby-on-rails-与ws://example.com/cable的WebS
- php-Laravel Forge Nginx Config for SSL
- nginx – HAProxy可以根据查找表选择后端吗?
- 如何在Debian上为php5-fpm设置umask?
- nginx – [emerg] bind()到0.0.0.0:80失败(98:地
- ruby-on-rails – 搬到rbenv打破乘客(nginx)
- nginx uwsgi flask重写目录作为app中的基本目录
- ruby-on-rails – 用Bundler安装Gems ==大问题
- nginx将文件类型传递给后端服务器
- Nginx sslv3贵宾犬禁用