Типичная ошибка веб-сервера с 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
.
Cодержание
Почему ошибка 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
. Файл конфигурации, в котором мы можем выделить больше места для общей памяти 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 МБ для сеансов общего кэша SSL, с тайм-аутом 1440 минут (24 часа).
Для сайтов с высоким трафиком рекомендуется увеличить общий кеш, но требуется баланс между трафиком (количеством сеансов) и количеством времени, в течение которого сеанс будет храниться.
В моем случае значение изменилось на "ssl_session_cache shared:le_nginx_SSL:15m
».