• 软件:1711
  • 资讯:51514|
  • 收录网站:99622|

IT精英团

Nginx通过启用ssl会话重用可以提高多少性能?

Nginx通过启用ssl会话重用可以提高多少性能?

浏览次数:
评论次数:
编辑: 阳煦
信息来源: ITPUB
更新日期: 2021-06-04 16:30:40
摘要

之前专门写过如何优化你的https,里面总结了几点Nginx下优化HTTPS的方法,最后有两点小的建议,没有详细说明,最近在群里看到朋友发的Nginx配置文件,只配置了证书和密钥部分,所以觉得有必要再把这些刨析一下上图是Nginx官网文档中,关于ssl_session_cache的介绍,ssl_se" />

-->
  • 资讯详情

之前写过如何优化你的https,总结了Nginx下优化HTTPS的几种方法。最后有两个小建议,不详细解释。最近看到群里朋友发的Nginx配置文件,只配置了证书和密钥。部分,所以觉得有必要再分析一下这些。

上图是Nginx官网文档中ssl_session_cache的介绍。ssl_session_cache是缓存ssl会话状态的缓存。它有四种模式可供选择,即:关闭:严格禁止使用会话缓存。

None:会话缓存是松散禁止的,也就是说,虽然nginx没有说不允许会话缓存,但实际上不会缓存会话。

OpenSSL的内置缓存。只有一个工作进程可以使用该缓存。官员指出,内置缓存会导致内存碎片

共享:共享缓存,由所有工作进程共享

这种配置能带来多大的性能提升?让我们抓住袋子看看

首先,实验环境Nginx只配置了证书和密钥,没有ssl_session_cache的完整连接过程由wireshark查看

可以看到,三次握手完成后,建立TLS连接,交换证书,验证证书。详细的TLS连接过程,请参考另一篇文章《Wireshark抓包帮你理清HTTPS请求流程》,此处不再赘述。将完整的TLS连接过程总结如下:

然后我们在Nginx中打开ssl_session_cache,重新捕获包

可以看出,一个简单的TLS握手包在完成3个TLS后建立连接并传输数据。将简短的TLS链接流程总结如下:

可以看出,短的TLS链接不如完整的TLS链接。如果遵循50毫秒的TTL,可以节省100毫秒,效率提高40%

缓存如何实现的?

在nginx中设置ssl_session_cache后,开始TLS缓存重用。整个过程如下:

当客户端客户端您好,它将带来一个会话标识,如果在包6769,

服务器和客户端协商建立连接并确认会话标识

然后,客户机将会话标识保存在本地,当连接再次启动时,客户机Hello会将此标识带在身边

因为服务器打开ssl_session_cache,所以在缓存中查找相应的会话标识,如果会话存在,则接受并恢复会话,并返回相同的会话标识

如果在缓存中找不到相应的会话标识,它将被转换为完整的TLS握手

缓存时间由ssl_session_timeout决定,默认值为5分钟

总结:

tls通过重用ssl来优化tls连接过程。服务器决定TLS是否可以重用,包括会话的到期时间。在nginx中,缓存和重用是通过打开ssl_session_cache来实现的,性能提高了40%。

你用了多长时间把100w的数据插入MySQL数据库?
« 上一篇
如果有人问你MySql的隔离级别是什么 把这篇文章发给他!
下一篇 »
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
你会是第一个来这里评论的人吗?