Типична грешка на уеб сървъра с 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
“, Както може да се заключи от името, отговаря за сесиите SSL служил за разпити. Време, когато сертификатът също е проверен SSL Let's Encrypt, инсталиран на сървъра с помощта certbot
.
Защо грешката на NGINX „не можа да разпредели нова сесия в SSL споделен кеш на сесията “le_nginx_SSL" докато SSL ръкостискане ”
Сесии SSL на NGINX се съхраняват в споделена памет, за да се споделят с всяка заявка в браузъра. Когато пространството, разпределено за споделената памет (споделен) кеш SSL е пълен и NGINX не успява да освободи място за нова сесия, се появява това съобщение за грешка.
Не става въпрос за един критична грешка на NGINX нито оказва огромно въздействие върху потребителското изживяване. Между другото в „error.log “се означава с„[alert]
".
Как да коригирам грешката на NGINX „не можа да разпредели нова сесия в SSL споделен кеш на сесията “le_nginx_SSL" докато SSL ръкостискане ”
Когато инсталирате Certbot на уеб сървър (CentOS, Ubuntu) се създават няколко конфигурационни файла, чрез които новата услуга отговаря за сертификатите SSL (Let's Encrypt) комуникира с NGINX. Един от тези файлове е и options-ssl-nginx.conf
. Конфигурационен файл, в който можем да отделим повече място за споделяне на памет a 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
".