在 Debian 上优化 Nginx 性能,通常从 系统参数、Nginx 配置、静态资源、缓存、连接数、硬件/内核 几个层面一起做。下面给你一套生产环境常用、可落地的优化方案。
编辑:
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
sudo nano /etc/security/limits.conf
添加:
* soft nofile 65535
* hard nofile 65535
root soft nofile 65535
root hard nofile 65535
编辑:
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;
}
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;
}
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff2)$ {
expires 30d;
access_log off;
add_header Cache-Control "public, immutable";
}
limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;
server {
location / {
limit_req zone=req_limit burst=20 nodelay;
}
}
listen 443 ssl http2;
检查:
nginx -t
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;
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
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
✅ 限流防刷
✅ 静态资源缓存
你可以:
我可以帮你做 针对性精准优化方案。