ubuntu

Ubuntu Nginx SSL性能如何优化

小樊
40
2025-11-19 09:02:39
栏目: 云计算

Ubuntu 上 Nginx SSL 性能优化实操指南

一 基础与架构优化

二 关键 Nginx 配置示例

# /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/ssl.conf
worker_processes auto;
events {
    worker_connections 4096;
    use epoll;                 # Linux 高效事件模型
    multi_accept on;
}

http {
    # 开启 Gzip(文本类资源收益明显)
    gzip on;
    gzip_vary on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    # SSL 会话复用(减少完整握手)
    ssl_session_cache shared:SSL:10m;   # 约可缓存 4000 个会话/MB
    ssl_session_timeout 1d;            # 可按并发与内存调优
    ssl_session_tickets on;            # 会话票据(TLS 1.2 及以下)

    # OCSP Stapling(需可解析 DNS)
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    resolver 1.1.1.1 8.8.8.8 valid=300s;
    resolver_timeout 5s;

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

        # 证书与链
        ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

        # 协议与套件(优先 AEAD + FS)
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:
                     ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:
                     ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
        ssl_prefer_server_ciphers on;

        # DH 参数(若证书非 ECDSA 或需兼容旧客户端)
        ssl_dhparam /etc/nginx/dhparam.pem;  # 生成:openssl dhparam -out /etc/nginx/dhparam.pem 2048

        # 安全与性能头
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-Content-Type-Options "nosniff";

        # 长连接(按需调整)
        keepalive_timeout 70;
        keepalive_requests 1000;

        location / {
            root /var/www/html;
            index index.html;
        }
    }

    # HTTP -> HTTPS 301 跳转
    server {
        listen 80;
        server_name example.com;
        return 301 https://$host$request_uri;
    }
}

三 证书与密钥优化

四 系统与内核调优

五 验证与压测

0
看了该问题的人还看了