在NGINX上,第一个SSL页面加载速度很慢

我最近从GeoTrust购买了一个QuickSSL证书,我在NGINX上使用它。 一切都很好,但是在页面实际加载之前有一个讨厌的秒钟。

如果我查看其他SSL网站,大多数会立即加载它应该。

这是我的SSLconfiguration:

ssl on; ssl_certificate /usr/local/nginx/ssl/www.crt; ssl_certificate_key /usr/local/nginx/ssl/www.key; 

我发现在listen指令的末尾添加ssl ,但还没有解决。
对于这个问题重现,我不得不closures网站,并在稍后重新访问(大约15分钟?)。

SSL握手是一个缓慢的3包事件。 这意味着初始连接将花费比非SSL连接更长的时间 – 通常要延长3-4倍。 以下请求将使用来自第一个连接的SSL会话,速度会更快,但只要会话保持活动状态。

您可以通过设置ssl_session_cachessl_session_timeout来控制NGINX中SSL会话的生命周期。


编辑:只是注意到我已经解释了为什么会发生,但不是你能做些什么。 答案可悲的是很less。 初始握手需要多长时间取决于两个因素:实际的SSLencryption所花费的时间(可忽略当前硬件)以及仅由networking决定的3个数据包交换所花费的时间 – 除非您可以对服务器进行“较低的ping”没有什么会改变。

这听起来像是你开启了SSL会话caching(等待15分钟让问题重新出现),以及一个非常缓慢的CPU或者你和服务器之间的可怕的潜在的networkingpath,这是造成这个问题的原因。