使用ssl_session_cache优化https下Nginx的性能
网站启用https后,会加剧服务器的负担。每次新的TLS连续都需要握手,以便创建共享的加密密钥,在TCP三次握手之上还需要两个来回。传统的http使用TCP三次握手建立连接,而SSL和TLS在这个基础上还需要9个握手包,所以这个负担显而易见。不过,通过重用Session提高https的性能,TLS有几个特点可以抵消额外的握手:重用一个Session。有两个标准会话重用机制:session IDs (RFC 5246) 和 session tickets (RFC 5077),使用其中一个技术,一个客户端可以重用之前创建的会话,这个会话是之前和服务器进行握手成功的,这样可以减少一次来回过程。基于SessionID的会话重用适合现代所有浏览器,FireFox和Chrome甚至还支持 session tickets。
Nginx之ssl_session_cache详解:
1Syntax:ssl_session_cache off | none | [builtin[:size]] [shared:name:size];
2默认:
3ssl_session_cache none;
4Context:http, server
5设置存储session参数的缓存的类型和大小。缓存可以是以下任何一种类型:
6off
7严禁使用session缓存:nginx明确告诉客户端session可能不会被重用。
8none
9session缓存的使用被禁止:nginx告诉客户端session可能会被重用,但实际上并不会将session参数存储在缓存中。
10builtin
11在OpenSSL中构建的缓存;仅由一个工作进程使用。缓存大小在session中指定。如果没有给出大小,则等于20480个会话。使用内置高速缓存可能导致内存碎片。
12shared
13所有工作进程之间共享缓存。缓存大小以字节为单位指定;一兆字节可以存储大约4000个session。每个共享缓存都应该有一个任意名称。具有相同名称的缓存可以用于多个虚拟服务器。
14两种类型的缓存可以同时使用:配置案例:
15ssl_session_cache builtin:1000 shared:SSL:10m;
16但是只使用shared缓存,而不使用built-in缓存性能应该会更高。
Nginx配置ssl_session_cache:
目前使用较多的配置是built-in和shared同时使用:ssl_session_cache builtin:1000 shared:SSL:10m;但是Nginx官方说只使用shared,性能会更高,配置方法为:ssl_session_cache shared:SSL:10m;
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/nginx-ssl-session-cache/6306.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.