加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

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

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

压缩文本数据的方法各不相同。例如,请参阅技巧6了解SPDY和HTTP/2中的一个新的文本压缩方案,该方案专门针对头数据进行了调整。作为文本压缩的另一个例子,您可以在NGINX中打开GZIP压缩。在预压缩服务上的文本数据之后,可以使用gzip_static指令直接提供压缩后的.gz文件。

技巧5 -优化SSL/TLS

安全套接字层(SSL)协议及其后续协议传输层安全(TLS)协议正在越来越多的网站上使用。SSL/TLS对从源服务器传输到用户的数据进行加密,以帮助提高站点安全性。影响这一趋势的部分原因是,谷歌现在使用SSL/TLS作为对搜索引擎排名的积极影响。

尽管越来越受欢迎,但SSL/TLS涉及的性能问题仍然是许多站点的症结所在。SSL/TLS降低网站性能有两个原因:

  • 每当打开新连接时,建立加密密钥所需的初始握手。浏览器使用HTTP/1的方式。为每台服务器建立多个连接。
  • 在服务器上加密数据和在客户机上解密数据的持续开销。

为了鼓励使用SSL/TLS, HTTP/2和SPDY(在下一篇技巧文章中描述)的作者设计了这些协议,使浏览器在每个浏览器会话中只需要一个连接。这大大减少了SSL开销的两个主要来源之一。然而,现在可以做更多的工作来改进通过SSL/TLS交付的应用程序的性能。

优化SSL/TLS的机制因web服务器而异。例如,NGINX使用OpenSSL在标准的商用硬件上运行,以提供类似于专用硬件解决方案的性能。NGINX SSL性能有良好的文档记录,并将执行SSL/TLS加密和解密的时间和CPU消耗降到很低。

此外,有关如何提高SSL/TLS性能的详细信息,请参阅本文。简而言之,这些技术是:

  • 会话缓存——使用ssl_session_cache指令缓存使用SSL/TLS保护每个新连接时使用的参数。
  • 会话票证或ID——这些信息存储在票证或ID中关于特定SSL/TLS会话的信息,这样就可以顺利地重用连接,而不需要新的握手。
  • 通过缓存SSL/TLS证书信息,减少握手时间。

NGINX和NGINX Plus可用于SSL/TLS终止——处理客户机流量的加密和解密,同时与其他服务器进行明文通信。要设置NGINX或NGINX Plus来处理SSL/TLS终止,请参阅HTTPS连接和加密TCP连接的说明。

技巧6 -实现HTTP/2或SPDY

对于已经使用SSL/TLS、HTTP/2和SPDY的站点,很可能会提高性能,因为单个连接只需要一次握手。对于还没有使用SSL/TLS的站点,HTTP/2和SPDY将迁移到SSL/TLS(这通常会降低性能),从响应性的角度来看,这是一种洗刷。

谷歌在2012年引入SPDY,作为在HTTP/1.x之上实现更快性能的一种方式。HTTP/2是最近批准的基于SPDY的IETF标准。SPDY得到了广泛的支持,但是很快就会被弃用,取而代之的是HTTP/2。

SPDY和HTTP/2的关键特性是使用单个连接,而不是多个连接。单个连接是多路复用的,因此它可以同时携带多个请求和响应。

通过充分利用一个连接,这些协议避免了设置和管理多个连接的开销,这是浏览器实现HTTP/1.x的方式所要求的。使用单个连接对SSL特别有帮助,因为它将SSL/TLS设置安全连接所需的握手时间降到很低。

(编辑:西安站长网)

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

热点阅读