是否有更快的基准或比较:将nginx放在节点前面并让它直接提供静态文件或仅使用节点并使用它来提供静态文件?
nginx解决方案对我来说似乎更容易管理,有什么想法吗?
m33*_*lky 114
我不得不在这里不同意答案.虽然Node会很好,但正确配置后nginx肯定会更快.nginx在C中有效实现,遵循类似的模式(仅在需要时返回连接),内存占用空间很小.此外,它支持sendfile系统调用来提供那些尽可能快地提供服务文件的文件,因为它是正在执行工作的操作系统内核本身.
到目前为止,nginx已成为事实上的标准作为前端服务器.您可以将其用于提供静态文件,gzip,SSL以及稍后进行负载平衡的性能.
PS:这假定文件确实是"静态的",就像在请求时磁盘上的静止一样.
gre*_*emo 72
我做了一个快速ab -n 10000 -c 100的服务静态1406字节favicon.ico,比较nginx,Express.js(静态中间件)和集群Express.js.希望这可以帮助:

不幸的是我无法测试1000甚至10000个并发请求,因为在我的机器上,nginx会开始抛出错误.
编辑:正如artvolk所建议的,这里是集群+ static中间件(更慢)的结果:

小智 11
我对@ gremo的图表有不同的解释.它看起来像节点和nginx规模相同的请求数(9-10k之间).当然,nginx的响应延迟会持续20ms,但我不认为用户必然会发现这种差异(如果您的应用程序构建良好).给定一定数量的机器,在将节点机器转换为nginx之前需要相当大的负载,因为该节点是首先出现大部分负载的地方.与此相反的一个问题是,如果您已经将一台机器专用于nginx以实现负载平衡.如果是这种情况,那么您也可以使用它来提供静态内容.
无论哪种方式,我都设置Nginx来缓存静态文件 ......你会看到那里有巨大的差异.然后,无论您是否从节点提供服务,您基本上都可以在节点应用程序上获得相同的性能和相同的负载.
我个人不喜欢在大多数情况下我的Nginx前端服务静态资产的想法
1)项目现在必须在同一台机器上 - 或者必须分成资产(在nginx机器上)和web应用程序(在多台机器上进行缩放)
2)Nginx配置现在必须维护静态资产/重新加载时的路径位置.
| 归档时间: |
|
| 查看次数: |
42530 次 |
| 最近记录: |