这是一个我甚至不知道如何在网上搜索它的问题,这可能是一个愚蠢的问题:
Web服务器在21(ftp)等不同端口上设置下载请求和文件流比使用默认80/443(http / https)端口更有效吗?甚至使用另一台服务器来处理这些请求,这样就不会再通过http / https连接进行繁重的流量了。它甚至可以做这样的动作吗?
如果是,我如何在Express.js上设置这些设置?如果没有,处理大量下载的常规方法是什么?
我知道可以使用响应对象通过用户的浏览器发送文件,如下所示:
app.get('/download', function(req, res){
res.download('image.jpg');
}
据我所知,它使用http / https。我想知道是否可以手动在端口21上设置它。
所以有两个问题:
感谢清除此事
答案 0 :(得分:2)
将下载放在不同的端口上并不会对服务器效率或扩展产生任何影响。
有什么帮助将静态文件的下载移出node.js进程并进入另一个进程,或者在大规模情况下,将其下载到另一个主机上。在所有情况下,我都不会添加额外流程的复杂性,除非您已经证明实际上存在规模问题并且需要添加额外的复杂性。规模瓶颈往往不是您认为的那样,因此增加项目的复杂性以提高规模而不首先测量瓶颈实际上的位置通常是浪费精力。
切换到其他端口并不会增加可扩展性。它不是具有规模限制的端口。它的流程和主机。因此,您可以添加另一个HTTP进程(并保持HTTP)以成功添加进程并增加扩展。
一旦您证明您确实存在静态下载的缩放瓶颈,您可以使用静态下载来增加下载规模:
xxdomain.com
作为主要主机的大型网站,img.xxdomain.com
单独的主机图像下载。通常,您希望避免将80或442以外的端口用于网络流量,因为许多网络基础结构(特别是严格控制的公司环境)可能不允许用户使用其他端口进行网络流量。