5个提高Nodejs应用性能的技巧

“如果你的nod服务器前面没有nginx,那么你可能做错了。”—BryanHughs

Nod.js是使用最流行的语言—JavaScript构建服务器端应用的领先工具。由于可以同时提供wb服务器和应用服务器的功能,Nod.js被认为是以微服务为基础的开发和部署的关键工具。

在后端开发中,Nod.js可以替换或者扩展Java和.NET。

Nod.js是单线程非阻塞I/O,使其可以支持成千上万的并发操作。这和NGINX解决C10K问题的方式如出一辙。Nod.js以高效的性能和开发效率著称。

所以,到底哪里做错了?

Nod.js的一些缺陷使得以Nod.js为基础的系统面临潜在的性能问题甚至崩溃,这在系统流量迅速增长时表现的尤其明显。虽然Nod.js是处理wb应用逻辑的很好工具,但它并不擅长处理静态文件,比如图片和JavaScript文件,同样不擅长多个服务器间的负载均衡。

为了更好的使用Nod.js,你需要把缓存静态文件、代理、负载均衡、客户端连接管理等功能交给NGINX去做。

下面是一些提高Nod.js性能的建议:

实现一个反向代理服务器

缓存静态文件

多服务器负载均衡

代理WbSockt连接

实现SSL/TLS和HTTP/

注:提升Nod.js应用性能的最快方法是修改你的Nod.js文件来利用多核处理器,查看这篇文章来学习如何充分利用服务器上的多核CPU。

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

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

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

使用NGINX在一个已经存在的服务器前做反向代理,作为NGINX的一个核心应用,已经被用于全世界成千上万的站点中。

下面是使用NGINX作为反向代理服务器的优点:

简化了权限处理和端口分配

更高效的处理静态资源

更好的处理Nod.js崩溃情况

缓解DoS攻击的影响

注:这篇文章解释如何在Ubuntu14.04或者CntOS环境中使用NGINX做反向代理服务器,而且使用NGINX在Nod.js前做反向代理服务器是有效的。

.缓存静态文件

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

1.使用更多的Nod.js服务器。

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

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

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

下面是该网站做上述性能提升的配置代码:

nginx

srvr{listn80;srvr_namstatic-tst-.onmodulus.nt;root/mnt/app;indxindx.htmlindx.htm;location/static/{try_fils$uri$uri/=;}location/api/{proxy_pass







































治疗白癜风要花多少钱
土方治白癜风



转载请注明:http://www.guyukameng.com/php/3480.html