Tipiska tīmekļa serveru kļūda ar NGINX un Sertifikāts, ko nesen atklāju kļūda.log:
apmierināts
[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
Tā ir kļūda, kas parādās sporādiski, tikai noteiktos scenārijos un lielāko daļu laika vietnēs ar lielu trafiku. Liels vaicājumu skaits.
“le_nginx_SSL“, kā var secināt no nosaukuma, ir atbildīgs par SSL sesijām, kas tiek apkalpotas vaicājumiem. Laiks, kurā tiek pārbaudīts arī ar palīdzību serverī instalētais Let's Encrypt SSL sertifikāts certbotApvidū
Kāpēc rodas NGINX kļūda? “nevarēja piešķirt jaunu sesiju SSL sesijas koplietotajā kešatmiņā “le_nginx_ssl” Kamēr SSL rokasspiediens”
NGINX SSL sesijas tiek glabātas koplietotā atmiņā “akcija” 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 “kļūda.log” este notat cu “[alert]“Apvidū
Kā novērst NGINX kļūdu “nevarēja piešķirt jaunu sesiju SSL sesijas koplietotajā kešatmiņā “le_nginx_ssl” Kamēr SSL rokasspiediens”
Atunci cand instalam Sertifikāts 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
Iekšā options-ssl-nginx.conf varam mainīt parametrus, taču esiet uzmanīgi, jo izmaiņas šeit ietekmēs SSL sertifikātu atjaunošanu.
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;
Mēs varam mainīt, cik ilgi sesija tiek saglabāta koplietotajā atmiņā “le_nginx_ssl”. Es piešķīru 10 MB SSL koplietotās kešatmiņas sesijām ar noildzes periodu 1440 minūtes (24 stundas).
Vietnēm ar lielu trafiku ieteicams palielināt koplietojamo kešatmiņu, taču ir nepieciešams līdzsvars starp trafiku (sesiju skaitu) un laika periodu, kurā sesija tiks saglabāta.
Manā gadījumā, mainot vērtību uz “ssl_session_cache shared:le_nginx_SSL:15m“Apvidū