nginx https加速
背景:我们上线HTTPS后,发现有时候用户端打开会比HTTP的时候慢。为了尽量避免这些情况的出现,因此进行HTTPS的加速配置。
一、配置国内证书或开启OCSP Stapling
在使用Let's Encrypt 证书时,如果在某些情况下用户需要验证证书的情况下,可能会由于网络原因,造成用户与Let's Encrypt连接不畅,造成用户访问较慢(iOS设备出现该问题的可能性较大)。因此,换为国内证书可以有效避免该情况的发生。
如果因为各种原因无法更换未国内证书,可以在nginx配置中开启OCSP Stapling,这样省略证书验证步骤,开启方法如下:
resolver 114.114.114.114;
ssl_stapling on;
ssl_stapling_verify on;
需要注意的是,如果是国内网络,该部分不要使用8.8.8.8等国外的DNS服务器,因为目前运营商的限制,该部分DNS请求会被当地运营商的相关设备直接劫持;如果是海外网络,请根据当地网络状态进行测试。
二、开启HTTP/2
目前情况下,我们一个页面有多次请求,如果使用传统模式,需要开启多个连接才能加速访问;在HTTP/2中,可以做到一个连接中进行并行请求,减少连接时间,从而加速访问。开启方法如下:
listen 443 ssl http2;
三、进行SSL Session 缓存
开启该缓存的目的在于较少TLS校验的次数,从而较少相关验证引起的延时,开启方法如下,本文中,以100M内存和5小时缓存为例,其他情况请依据现实配置决定:
ssl_session_cache shared:SSL:100m;
ssl_session_timeout 5h;
四、修改ssl_buffer_size(可选)
该部分的配置在于控制在发送数据时的 buffer 大小,默认设置是 16k。如果是网站,可以将该值调整为4K;如果是大文件,还是不修改比较好。该部分配置为可选,根据业务情况来做选择,选择范围为2K-16K:
ssl_buffer_size 4k;