温馨提示×

Debian怎么优化Nginx性能

小樊
45
2026-08-05 12:43:02
栏目: 智能运维

在 Debian 上优化 Nginx 性能,通常从 系统参数、Nginx 配置、静态资源、缓存、连接数、硬件/内核 几个层面一起做。下面给你一套生产环境常用、可落地的优化方案。


一、系统层面优化(Debian)

1️⃣ 调整内核参数(重要)

编辑:

sudo nano /etc/sysctl.conf

加入或调整:

# 最大文件描述符
fs.file-max = 1000000

# TCP 连接优化
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_keepalive_time = 300

# 网络队列
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535

生效:

sudo sysctl -p

2️⃣ 提高文件描述符限制

sudo nano /etc/security/limits.conf

添加:

* soft nofile 65535
* hard nofile 65535
root soft nofile 65535
root hard nofile 65535

二、Nginx 主配置优化

编辑:

sudo nano /etc/nginx/nginx.conf

✅ 推荐配置(高并发)

user www-data;
worker_processes auto;            # 自动匹配 CPU 核心
worker_cpu_affinity auto;
worker_rlimit_nofile 65535;

events {
    worker_connections 10000;     # 每个 worker 最大连接数
    use epoll;                    # Linux 高效模型
    multi_accept on;
}

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;

    keepalive_timeout 65;
    keepalive_requests 10000;

    types_hash_max_size 2048;

    client_max_body_size 50m;
    client_body_buffer_size 128k;
    client_header_buffer_size 1k;

    open_file_cache max=100000 inactive=20s;
    open_file_cache_valid 30s;
    open_file_cache_min_uses 2;
    open_file_cache_errors on;

    gzip on;
    gzip_comp_level 5;
    gzip_min_length 1024;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    access_log off;               # 高并发建议关闭
    error_log /var/log/nginx/error.log warn;
}

三、网站 / 虚拟主机优化

1️⃣ 启用缓存(proxy 场景)

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m;

server {
    location / {
        proxy_cache my_cache;
        proxy_pass http://backend;
        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 404 1m;
    }
}

2️⃣ 静态资源优化

location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff2)$ {
    expires 30d;
    access_log off;
    add_header Cache-Control "public, immutable";
}

3️⃣ 限制连接 & 防攻击(推荐)

limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;

server {
    location / {
        limit_req zone=req_limit burst=20 nodelay;
    }
}

四、开启 HTTP/2(强烈推荐)

listen 443 ssl http2;

检查:

nginx -t

五、SSL 性能优化(HTTPS)

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;

六、升级 Nginx(避免 Debian 老版本)

Debian 官方仓库版本可能较旧。

✅ 使用官方主线版

curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
echo "deb https://nginx.org/packages/mainline/debian $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
sudo apt update
sudo apt install nginx

七、启用 Brotli(可选,高性能压缩)

sudo apt install nginx-module-brotli

配置:

brotli on;
brotli_comp_level 6;

八、性能验证

检查配置

nginx -t
sudo systemctl reload nginx

压力测试

ab -n 10000 -c 100 http://your-domain/

九、推荐组合(生产环境)

✅ Debian 12
✅ Nginx 主线版
✅ HTTP/2 + TLS 1.3
✅ Gzip / Brotli
✅ Proxy Cache
✅ 限流防刷
✅ 静态资源缓存


✅ 如果你愿意

你可以:

  • 贴出你的 nginx.conf
  • 告诉我你用的是 静态站 / 反向代理 / PHP / Docker
  • 告诉我服务器 CPU / 内存 / 带宽

我可以帮你做 针对性精准优化方案

0