首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于经常使用的文件,node.js/ngnix是否使用实习生缓存?

对于经常使用的文件,node.js/ngnix是否使用实习生缓存?
EN

Stack Overflow用户
提问于 2016-04-07 15:19:57
回答 2查看 101关注 0票数 3

我想知道node.js是否在下面的场景中使用缓存,或者是否存在一个模块:

例如,当您有一个web门户,它在入门页面20产品中显示图像时,每次服务器必须从hdd或最好的情况下从ssd获取图像时。对于每一个图像,仅仅为了找到它,服务器需要大约5-7 ms.when,您有50个用户正在访问起始页面,同时需要20 time * 5ms * 50 usr =5000 5ms才能找到硬盘上的图像。

因此,如果有一种方法将所有经常使用的文件(如图像、css、html等)保存在memory.so中,那就更好了--您只需定义缓存大小。例如,50 in和模块/node.js将经常使用的文件保存在缓存中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-14 17:00:17

Node.js本身(默认情况下)不进行任何缓存,尽管OS和其他较低层元素(例如HDD)可能会这样做,从而显著加快连续读取速度。

如果要在nodejs中启用缓存http响应,则有一个http-cache库-- https://www.npmjs.com/package/http-cacherequest-caching库- https://www.npmjs.com/package/node-request-caching。对于缓存文件,可以使用filecache https://www.npmjs.com/package/filecache和服务静态文件- serve-static (https://www.npmjs.com/package/serve-static)。

如果您使用的是像Express这样的框架,那么它就不再那么简单了--例如,在生产模式下运行Express会导致它缓存一些东西(比如模板或CSS)。还请注意,res.sendFile直接将文件流到客户(可能是代理服务器,如nginx)。

然而,即使是Express的网页(http://expressjs.com/en/advanced/best-practice-performance.html)也建议使用单独的代理:

缓存请求结果 提高生产性能的另一种策略是缓存请求的结果,这样应用程序就不会重复操作来重复处理相同的请求。 使用这样的缓存服务器,如Varnish或Nginx (也请参阅Nginx缓存),可以极大地提高应用程序的速度和性能。

关于加速nodejs的其他建议,您可以查看https://engineering.gosquared.com/making-dashboard-fasterhttp://www.sitepoint.com/10-tips-make-node-js-web-app-faster/

票数 1
EN

Stack Overflow用户

发布于 2016-04-14 16:42:43

Nodejs上的内置Web服务器不实现任何内容缓存。像@etc 322一样,具体的答案取决于Nodejs (框架、中间件等)之上的技术栈。另一方面,Nginx被更广泛地用作静态资产的Web服务器。通常,它们是以某种方式组合的,静态资产是来自Nginx和应用程序逻辑(rest服务等)的服务器。由Nodejs应用程序处理。内容缓存是HTTP协议标准的一部分,您可以通过在Web应用程序前面设置类似于瓦尔宁什的HTTP缓存来从中受益。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36480513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档