一個典型的 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
“。