改善NODE.JS应用性能的窍门-网络教程-学码思教育
全国热线

025-86901720

全国监督投诉热线:9:00-23:00

改善NODE.JS应用性能的窍门

Node.js现在很流行,很多前端朋友们还不太熟悉,今天学码思web前端培训​老师给大家讲解改善NODE.JS应用性能的窍门,一起来看一下。

  Node.js现在很流行,能够同时满足web服务器和应用服务器功能的需求,是目前JS在服务器端口搭建应用的最先进的工具,是JS服务开发和部署的关键,具备强悍的性能和开发效率,可以同时进行千万级别的并发操作。但是因为是新技术,很多前端朋友们还不太熟悉,今天学码思web前端培训老师给大家讲解改善NODE.JS应用性能的窍门,一起来看一下。


  1. 实现一个反向代理服务器


  相比大多数应用服务器,Node.js 可以很轻松的处理大量的网络流量,但这并不是 Node.js 的设计初衷。


  如果你有一个高流量的站点,提高性能的第一步是在你的 Node.js 前面放一个反向代理服务器。这可以保护你的 Node.js 服务器免于直接暴露在网络中,而且可以允许你灵活的使用多个应用服务器做负载均衡和静态文件缓存。


  2. 缓存静态文件


  随着流量的增长,以 Node 为基础的服务器开始显现压力。这时,你可能想做两件事:


  使用更多的 Node.js 服务器。


  在多个服务器间做负载均衡


  这其实很简单,NGINX 一开始就是作为反向代理服务器来实现的,这使其很容易做缓存和负载均衡等。


  Modulus 的网站有一篇有用的文章,介绍了使用 NGINX 做 Node.js 反向代理服务器的性能提升。只使用 Node.js 时,作者的网站每秒能处理 900 个请求。 使用 NGINX 作为反向代理服务器来处理静态文件后,该网站每秒可处理超过 1600 个请求,接近两倍的性能提升。


  3. 实现 Node.js 负载均衡


  最终目标— Node.js 运行多个应用服务器,并在这些服务器之间均衡负载。


  Node.js 实现负载均衡是比较困难的,因为 Node.js 允许浏览器端 JavaScript 和 服务器端 Node.js 通过 json 做数据交互,这就意味着同一个客户端可以反复的访问一个特定的应用服务器,而且多个应用服务器之间共享 session也是比较困难的。


  NGINX 实现无状态负载均衡的方式:


  Round Robin. 新的请求去列表中的下一个服务器

  Least Connections. 新的请求去连接数最少的服务器

  IP Hash. 根据客户端 IP 的 hash 值指定服务器


  只有 IP Hash 这一种能够可靠的把客户端请求代理到同一台服务器的方式才能使 Node.js 应用服务器受益。


  4. 代理 WebSocket 连接


  所有版本的 HTTP 都是为客户端主动请求服务器来设计的,而 WebSocket 可以实现服务器主动向客户端的消息推送。


  WebSocket 协议使客户端和服务器端的稳定交互更加简单,同时也提供更小的交互延迟。当你需要一个全双工的通讯,即客户端和服务器都可以在需要时主动发起消息请求,那么使用 WebSocket 就对了。


  WebSocket 协议有健全的 JavaScript 接口,因此也原生适合用 Node.js 作为应用服务器。当连接数上升,使用 NGINX 在客户端和 Node.js 服务器端做代理来缓存静态文件和负载均衡就变得非常有意义。


  5. 实现 SSL/TLS 和 HTTP/2


  越来越多的网站使用 SSL/TLS 来保证信息交互的安全性,你也可以考虑是否要把它加入到你的网站中,但如果你决定要做,那么 NGINX 有两种方式来支持它:


  你可以使用 NGINX 做 SSL/TLS 反向代理,Node.js 服务器使用解密后的请求然后返回未加密的内容给 NGINX。


  使用 HTTP/2 可以抵消 SSL/TLS 带来的性能开销,NGINX 支持 HTTP/2, 所以你可以同时使用 HTTP/2 和 SSL 代理请求,而你的 Node.js 服务器不需要做任何更改。


  在实现阶段你需要更新 Node.js 配置文件中的 URL, 在你的 NGINX 配置文件中使用 SPDY 或者 HTTP/2 优化连接。添加 HTTP/2 支持意味着支持 HTTP/2 的浏览器可以使用新的协议和你的应用交互,而老的浏览器继续使用 HTTP/1.x。


  改善NODE.JS应用性能的窍门就为大家介绍到这里,Node.js在后端中起到的作用也很明显,可以替换或者扩展 Java 和 .NET,前后端配合是工作中的重点,是完成网站的必然条件,Node.js的诞生给前后端配合沟通提供了更加便捷的渠道。>>>Web前端开发中容易犯错的几个点


上一篇:Web前端开发中容易犯错的几个点
下一篇:关于JS中call()、apply()、bind()的区别讲解

相关推荐

免费试听 | 学费咨询 | 在线报名 | 申请补贴 | 软件培训 | 网站地图

2016-2020 南京学码思教育科技有限公司 .All Rights Reserved

苏ICP备16033487号 www.njxms.com.cn

全国热线

400-080-3312

全国监督服务热线:9:00-23:00