Fix NGINX Error: could not allocate new session in SSL session shared cache “le_nginx_SSL” while SSL handshaking

O eroare tipica serverelor web cu NGINX si Certbot, pe care am descoperit-o recent in 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

Este o eroare care apare sporadic, numai in anumite scenarii si de cele mai multe ori pe website-urile cu trafic mare. Numar mare de interogari.

le_nginx_SSL“, asa cum se poate deduce si din nume, raspunde de sesiunile SSL servite interogarilor. Timp in care este verificat si certificatul SSL Let’s Encrypt, instalat pe server cu ajutorul certbot.

De ce apare eroarea NGINX “could not allocate new session in SSL session shared cache “le_nginx_SSL” while SSL handshaking”

Sesiunile SSL ale NGINX sunt pastrate intr-o memorie partajata “share” pentru a servite la fiecare interogare in browser. Cand spatiul alocat memoriei partajate (shared) cache SSL este plin, iar NGINX nu reuseste sa elibereze spatiu pentru o noua sesiune, apare acest mesaj de eroare.

Nu este vorba despre o eroare critica a NGINX si nici nu are un impact foarte mare asupra experientei utilizatorilor. De altfel in “error.log” este notat cu “[alert]“.

Cum rezolvam eroarea NGINX “could not allocate new session in SSL session shared cache “le_nginx_SSL” while SSL handshaking”

Atunci cand instalam Certbot pe un server web (CentOS, Ubuntu) sunt create mai multe fisiere de configurare prin care noul serviciul care raspunde de certificatele SSL (Let’s Encrypt) comunica cu NGINX. Unul dintre aceste fisirere este si options-ssl-nginx.conf. Fisier de configuratie in care putem sa alocam un spatiu mai mare pentru memoria share a SSL sau putem schimba timpul in care o sesiune SSL sa expire si sa fie stearsa automat.

sudo nano /etc/letsencrypt/options-ssl-nginx.conf

In options-ssl-nginx.conf putem schimba din parametri, insa atentie mare, pentru ca modificarile de aici vor afecta reinnoirea certificatelor 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;

Putem modifica cat timp o sesiune sa fie stocata in memoria shared partajata pentru “le_nginx_SSL”. Eu am alocat 10 MB pentru sesiunile cache shared ale SSL, cu o perioada de timeout de 1440 minute (24 ore).

Pentru site-urile cu trafic mare este recomandat ca memoria cache partajata sa fie marita, insa trebuie un echilibru intre trafic (numarul de sesiuni) si perioada de timp cat o sesiune va fi stocata.

In cazul meu a functionat schimbarea valorii la “ssl_session_cache shared:le_nginx_SSL:15m“.

Pasionat de tehnologie, scriu cu plăcere pe StealthSettings.com începând cu anul 2006. Am o bogată experiență în sistemele de operare: macOS, Windows și Linux, dar și în limbaje de programare și platforme de blogging (WordPress) și pentru magazine online (WooCommerce, Magento, PrestaShop).

Leave a Comment