降低Nginx高并发HTTPS内存开销的关键是控制TLS连接生命周期和资源分配粒度:调小ssl_buffer_size至4k–8k、ssl_handshake_timeout设为10s、仅启用TLSv1.2+并精简cipher套件、启用shared SSL会话缓存与session tickets、配合limit_conn和合理keepalive参数限制连接数。
降低 Nginx 在高并发 HTTPS 场景下的内存开销,关键不在堆内存扩容,而在控制 TLS 连接的状态生命周期和资源分配粒度——让每次握手更轻、复用更多、异常连接更快释放。
默认每个 SSL 连接预分配 16KB 缓冲区,高频建连时易引发内存抖动。应主动调低:
老旧协议和高开销 cipher 会显著增加证书解析、密钥上下文分配及 CPU 计算压力:
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';
ssl_conf_command Curves X25519:secp256r1;
ssl_conf_command SignatureAlgorithms ecdsa_secp256r1_sha256:rsa_pss_rsae_sha256:rsa_pkcs1_sha256;
避免重复握手是降低内存与 CPU 开销最直接的手段:
防止无效连接持续占位,尤其在短连接密集场景下:
limit_conn_zone $binary_remote_addr zone=conn_per_ip:10m;
limit_conn conn_per_ip 20;