加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

浅谈10个提升应用程序10倍性能的技巧

发布时间:2019-09-26 15:16:28 所属栏目:优化 来源:首席架构师
导读:提高web应用程序性能比以往任何时候都更加重要。在线经济活动的份额正在增长;超过5%的发达国家的经济现在是在互联网上的(参见参考资料中的互联网统计数据)。而我们这个始终在线、高度连接的现代世界意味着用户的期望比以往任何时候都要高。如果您的站点没
副标题[/!--empirenews.page--]

提高web应用程序性能比以往任何时候都更加重要。在线经济活动的份额正在增长;超过5%的发达国家的经济现在是在互联网上的(参见参考资料中的互联网统计数据)。而我们这个始终在线、高度连接的现代世界意味着用户的期望比以往任何时候都要高。如果您的站点没有立即响应,或者您的应用程序不能立即工作,用户将很快转向您的竞争对手。

浅谈10个提升应用程序10倍性能的技巧

例如,亚马逊近10年前的一项研究证明,即使在那时,页面加载时间每减少100毫秒,收入也会增加1%。最近的另一项研究强调了这样一个事实:超过一半的受访网站所有者表示,由于应用程序性能不佳,他们失去了收入或客户。

一个网站需要多快?每加载一个页面一秒钟,大约有4%的用户会放弃它。顶级电子商务网站提供从1秒到3秒的首次互动时间,这提供了很高的转化率。很明显,web应用程序性能的风险很高,而且可能还会增加。

想要提高性能很容易,但实际看到结果却很难。为了帮助你的旅程,这篇博客文章为你提供了10个技巧,帮助你将网站性能提高10倍。这是一个系列文章的第一部分,详细介绍了如何在一些经过良好测试的优化技术的帮助下,并在NGINX的支持下,提高应用程序的性能。本系列还概述了在此过程中可能获得的安全性改进。

技巧1 -使用反向代理服务器加速并保护应用程序

如果您的web应用程序在一台机器上运行,那么性能问题的解决方案可能很明显:使用一台更快的机器,拥有更多处理器、更多RAM、更快的磁盘阵列,等等。然后,新机器可以运行您的WordPress服务器,Node.js应用程序,Java应用程序等,比以前更快。(如果您的应用程序访问数据库服务器,解决方案可能看起来仍然很简单:获得两台更快的机器,以及它们之间更快的连接。)

问题是,机器的速度可能不是问题所在。Web应用程序通常运行缓慢,因为计算机在不同类型的任务之间切换:在数千个连接上与用户交互、从磁盘访问文件、运行应用程序代码等等。应用程序服务器可能会崩溃——耗尽内存、将内存块交换到磁盘,并让许多请求等待磁盘I/O等单个任务。

您可以采用完全不同的方法,而不是升级硬件:添加反向代理服务器来卸载这些任务。反向代理服务器位于运行应用程序的机器前面,处理Internet流量。只有反向代理服务器直接连接到Internet;与应用服务器的通信是通过一个快速的内部网络进行的。

使用反向代理服务器可以让应用服务器从等待用户与web应用程序交互的过程中解放出来,并让它集中精力构建页面,以便反向代理服务器通过Internet发送。不再需要等待客户机响应的应用程序服务器可以以接近优化基准测试的速度运行。

添加反向代理服务器还可以增加web服务器设置的灵活性。例如,如果一个给定类型的服务器被重载,可以很容易地添加另一个相同类型的服务器;如果服务器宕机,可以很容易地替换它。

由于它提供的灵活性,反向代理服务器也是许多其他性能提升功能的先决条件,比如:

  • 负载平衡(参见技巧2)——负载平衡器运行在反向代理服务器上,以便在多个应用服务器之间均匀地共享流量。有了负载平衡器,您就可以添加应用程序服务器,而不需要更改您的应用程序。
  • 缓存静态文件(参见技巧3)——直接请求的文件,如图像文件或代码文件,可以存储在反向代理服务器上,并直接发送到客户机,这样可以更快地为资产提供服务,并卸载应用程序服务器,从而使应用程序运行得更快。
  • 保护您的站点——反向代理服务器可以配置为高安全性,并进行监视,以便快速识别和响应攻击,保护应用程序服务器。

NGINX软件是专门为用作反向代理服务器而设计的,具有上面描述的附加功能。NGINX使用事件驱动的处理方法,这比传统服务器更有效。NGINX Plus添加了更高级的反向代理特性,比如应用程序健康检查、特殊的请求路由、高级缓存和支持。

「技术架构」10个10倍提升应用程序性能的技巧

技巧2 -添加一个负载平衡器

添加负载平衡器是一个相对容易的更改,它可以显著提高站点的性能和安全性。不需要使核心web服务器更大更强大,而是使用负载平衡器在多个服务器之间分配流量。即使应用程序编写得很差,或者存在伸缩性问题,负载平衡器也可以在不进行任何其他更改的情况下改善用户体验。

首先,负载均衡器是一个反向代理服务器(请参阅技巧1)——它接收Internet流量并将请求转发到另一台服务器。诀窍在于负载均衡器支持两个或多个应用程序服务器,使用多种算法在服务器之间分割请求。最简单的负载平衡方法是轮询,将每个新请求发送到列表上的下一个服务器。其他方法包括向活动连接最少的服务器发送请求。NGINX Plus具有在同一服务器上继续给定用户会话的功能,这称为会话持久性。

负载平衡器可以极大地提高性能,因为当其他服务器等待流量时,它们可以防止一个服务器过载。它们还可以方便地扩展web服务器的容量,因为您可以添加成本相对较低的服务器,并确保它们将得到充分利用。

可以负载平衡的协议包括HTTP、HTTPS、SPDY、HTTP/2、WebSocket、FastCGI、SCGI、uwsgi、memcached,以及其他几种应用程序类型,包括基于TCP的应用程序和其他第4层协议。分析您的web应用程序,以确定您使用的是哪种应用程序,以及在哪些地方性能比较差。

用于负载平衡的同一或多个服务器还可以处理其他几个任务,比如SSL终止、对HTTP/1的支持。客户端使用x和HTTP/2,并缓存静态文件。

NGINX通常用于负载平衡。要了解更多,请下载我们的电子书,选择软件负载平衡器的五个理由。您可以使用NGINX和NGINX Plus获得负载平衡的基本配置说明,第1部分以及NGINX Plus管理指南中的完整文档。NGINX Plus是我们的商业产品,支持更专业的负载平衡特性,比如基于服务器响应时间的负载路由,以及基于微软NTLM协议的负载平衡能力。

技巧3 -缓存静态和动态内容

通过更快地将内容交付给客户机,缓存提高了web应用程序的性能。缓存可以包括几种策略:在需要时对内容进行预处理以实现快速交付、将内容存储在更快的设备上、将内容存储在离客户机更近的地方,或者组合使用。

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读