温馨提示×

nginxssl在debian怎优化

小樊
47
2026-09-20 23:53:33
栏目: 云计算

在 Debian 上优化 Nginx + SSL(HTTPS),一般从 协议与加密套件、性能(会话复用/缓存)、证书、系统参数、HTTP/2、安全头部 几个方面入手。下面给你一套实用优化方案(适用于 Debian 10/11/12)。


一、基础环境确认

nginx -v
openssl version

建议使用:

  • Nginx ≥ 1.18
  • OpenSSL ≥ 1.1.1(支持 TLS 1.3)

二、Nginx SSL 核心配置优化

1️⃣ 启用 TLS 1.2 / 1.3,禁用旧协议

ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off; # TLS1.3 下无意义,但兼容性好

2️⃣ 优化加密套件(现代安全)

ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

3️⃣ 启用 SSL 会话复用(非常重要)

ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets on;

高并发建议 shared:SSL:20m~50m


4️⃣ 启用 OCSP Stapling(提升握手速度)

ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 1.1.1.1 valid=300s;
resolver_timeout 5s;

5️⃣ HTTP/2(必须开)

listen 443 ssl http2;

三、证书优化

1️⃣ 使用 ECC 证书(比 RSA 更快)

openssl ecparam -genkey -name prime256v1 -out ec.key

2️⃣ 证书链完整

ssl_certificate     /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;

3️⃣ 启用 HSTS

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

四、Nginx 性能优化(Debian)

1️⃣ worker 配置

worker_processes auto;
worker_rlimit_nofile 65535;

events {
    worker_connections 10240;
    use epoll;
}

2️⃣ 开启文件缓存

open_file_cache max=10000 inactive=30s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;

五、Debian 系统层优化

1️⃣ 提高文件描述符

ulimit -n 65535

/etc/security/limits.conf

* soft nofile 65535
* hard nofile 65535

2️⃣ 内核网络参数

/etc/sysctl.conf

net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
sysctl -p

六、完整示例(server 段)

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate     /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305;
    ssl_prefer_server_ciphers off;

    ssl_session_cache shared:SSL:20m;
    ssl_session_timeout 1d;
    ssl_session_tickets on;

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 1.1.1.1 valid=300s;

    add_header Strict-Transport-Security "max-age=31536000" always;

    location / {
        proxy_pass http://backend;
    }
}

七、验证

nginx -t
systemctl reload nginx

测试:

curl -I https://example.com
https://www.ssllabs.com/ssltest/

如果你愿意,可以告诉我:

  • 是 静态站 / 反代 / API
  • 并发量
  • 是否用 Let’s Encrypt

我可以给你 更精准的 Debian Nginx SSL 调优方案。

0 踩