修復 NGINX Error: SSL 握手時無法在 SSL 會話共享緩存“le_nginx_SSL”中分配新會話

一個典型的 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”,從名字上可以看出,它負責為查詢服務的 SSL 會話。 Let's Encrypt SSL證書驗證的時間,安裝在服務器上的幫助 certbot.

為什麼 NGINX 錯誤“無法在 SSL 會話共享緩存中分配新會話”le_nginx_SSL“雖然 SSL 握手”

NGINX SSL 會話存儲在共享內存中,為瀏覽器中的每個查詢提供服務。 當分配給共享 SSL 緩存的空間已滿且 NGINX 無法為新會話釋放空間時,會出現此錯誤消息。

這不是關於一個 NGINX 的嚴重錯誤 也不會對用戶體驗產生巨大影響。 順便說一下“error.log ”表示為“[alert]“。

如何修復 NGINX 錯誤“無法在 SSL 會話共享緩存中分配新會話”le_nginx_SSL“雖然 SSL 握手”

當您安裝 Certbot 在 Web 服務器(CentOS、Ubuntu)上創建了幾個配置文件,負責 SSL(讓我們加密)證書的新服務通過這些文件與 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”更改會話在共享共享內存中的存儲時間。 我為 SSL 共享緩存會話分配了 10 MB,超時時間為 1440 分鐘(24 小時)。

對於高流量站點,建議增加共享緩存,但需要在流量(會話數)和會話存儲時間之間取得平衡。

在我的情況下,值在“ssl_session_cache shared:le_nginx_SSL:15m“。

對技術充滿熱情,我喜歡測試和編寫有關操作系統的教程 macOS,Linux, Windows, 關於 WordPress、WooCommerce 和 LEMP Web 服務器配置(Linux、NGINX、MySQL 和 PHP)。 我寫在 StealthSettings.com 自 2006 年以來,幾年後我開始撰寫 iHowTo.Tips 教程和有關生態系統中設備的新聞 Apple: iPhone,iPad, Apple 手錶,HomePod, iMac, MacBook、AirPods 和配件。

發表評論