一个典型的 Web 服务器错误 NGINX si Certbot,我最近在 error.LOG:
内容
[alert] 19765#19765: *151498 could not allocate new session in SSL session shared cache "le_nginx_SSL" while SSL handshaking, client: ip.ip.ip.ip, server: 0.0.0.0:443
这是偶尔发生的错误,仅在某些情况下,最常见于高流量网站。 大量查询。
“le_nginx_SSL
",从名字就可以推断出来,负责sessions SSL 接受审讯。 证书也被验证的时间 SSL Let's Encrypt,在服务器的帮助下安装 certbot
.
为什么 NGINX 错误“无法在 SSL 会话共享缓存“le_nginx_SSL”而 SSL 握手”
会话 SSL NGINX 的一部分存储在共享内存中,以便与浏览器中的每个查询共享。 当空间分配给共享内存(shared)缓存 SSL 已满且 NGINX 无法为新会话释放空间,则会出现此错误消息。
这不是关于一个 NGINX 的严重错误 也不会对用户体验产生巨大影响。 顺便说一下“error.log ”表示为“[alert]
“。
如何修复 NGINX 错误“无法在其中分配新会话” SSL 会话共享缓存“le_nginx_SSL”而 SSL 握手”
当您安装 Certbot 在网络服务器上(CentOS, Ubuntu) 都创建了几个配置文件,新服务通过这些配置文件负责证书 SSL (Let's Encrypt) 与 NGINX 通信。 这些文件之一是和 options-ssl-nginx.conf
. 我们可以在其中为内存共享分配更多空间的配置文件 SSL 或者我们可以更改会话的时间 SSL 过期并被自动删除。
sudo nano /etc/letsencrypt/options-ssl-nginx.conf
In options-ssl-nginx.conf
我们可以更改参数,但是要非常小心,因为这里的更改会影响证书的更新 SSL.
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
我们可以为“le_nginx_”更改会话在共享内存中的存储时间。SSL”。 我为共享缓存会话分配了 10 MB SSL,超时时间为 1440 分钟(24 小时)。
对于高流量站点,建议增加共享缓存,但需要在流量(会话数)和会话存储时间之间取得平衡。
在我的情况下,值在“ssl_session_cache shared:le_nginx_SSL:15m
“。