Node.js的五大应用性能技巧总结(必须收集)
本文介绍了Node.js的五种应用程序性能技巧,并与您分享如下:
首先,实现反向代理服务器
与大多数应用服务器相比,Node.js可以轻松处理大量网络流量,但这并不是Node.js的初衷。
如果你有一个高流量的站点,提高性能的第一步是在你的Node.js前面放一个反向代理服务器,这样可以保护你的Node.js服务器不直接暴露在网络中,让你可以灵活使用多个应用服务器进行负载均衡和静态文件缓存。
在现有服务器前使用NGINX作为反向代理,作为NGINX的核心应用,已经在全球数千个站点使用。
以下是使用NGINX作为反向代理服务器的优势:
简化权限处理和端口分配
更有效地处理静态资源
更好地处理节点的崩溃
减轻DoS攻击的影响
注:本文说明了如何在Ubuntu 14.04或CentOS环境下使用NGINX作为反向代理服务器,在Node.js之前使用NGINX作为反向代理服务器是有效的
第二,缓存静态文件
随着流量的增加,基于Node的服务器开始显现压力。这时,你可能要做两件事:
使用更多的Node.js服务器。
多台服务器之间的负载平衡
这其实很简单。NGINX一开始是作为反向代理服务器实现的,这使得缓存和负载平衡变得很容易。
Modulus的网站上有一篇有用的文章,介绍了使用NGINX作为Node.js的反向代理服务器的性能提升,当只使用Node.js时,作者的网站每秒可以处理900个请求。使用NGINX作为反向代理服务器处理静态文件后,网站每秒可处理1600多个请求,性能提升近一倍。
以下是用于提高上述性能的网站配置代码:
nginx
服务器{ listen 80服务器名static-test-47242.onmodulus.net;root/mnt/app;index.htmlindex.htm指数;位置/静态/{ try _ files $ uri $ uri/=404;}位置/API/{ proxy _ pass http://node-test-45750.onmodulus.net;}}第三,实现Node.js负载均衡
最终目标-node.js运行多个应用服务器,并在这些服务器之间平衡负载。
Node.js很难实现负载均衡,因为Node.js允许浏览器端的JavaScript和服务器端的Node.js通过js on交换数据,这意味着同一个客户端可以重复访问特定的应用服务器,多个应用服务器很难共享会话。
NGINX实现无状态负载平衡的方式:
循环赛。新请求将发送到列表中的下一台服务器
最少的联系。一个新的请求到达连接最少的服务器
IP哈希。根据客户端IP的哈希值指定服务器
只有能够可靠地将客户端请求代理到同一服务器的IP Hash,才能使Node.js应用服务器受益。
四.代理网络套接字连接
所有版本的HTTP都是为客户端主动请求服务器而设计的,WebSocket可以实现服务器主动向客户端推送消息。
WebSocket协议使得客户端和服务器之间的稳定交互更加简单,也提供了更小的交互延迟。当您需要全双工通信时,即客户端和服务器都可以在必要时发起消息请求时,使用WebSocket是正确的。
WebSocket协议有一个完善的JavaScript接口,所以也适合使用Node.js作为应用服务器。当连接数增加时,使用NGINX作为代理在客户端和Node.js服务器上缓存静态文件和负载平衡变得非常有意义。
动词(verb的缩写)实现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,并使用SPDY或HTTP/2来优化NGINX配置文件中的连接。添加HTTP/2支持意味着支持HTTP/2的浏览器可以使用新协议与您的应用程序交互,而旧浏览器继续使用HTTP/1.x
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。
版权声明:Node.js的五大应用性能技巧总结(必须收集)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。