nginx 性能优化

Nginx 性能调优:连接数、缓冲区、缓存和压缩配置

语法

各种性能相关指令

参数

参数说明示例级别
sendfile 零拷贝文件传输 sendfile on; 常用
tcp_nopush 优化数据包发送 tcp_nopush on; 常用
keepalive_timeout 长连接超时 keepalive_timeout 65; 常用
gzip 启用压缩 gzip on; 常用
proxy_cache 反向代理缓存 proxy_cache my_cache; 进阶
open_file_cache 文件描述符缓存 open_file_cache max=1000 inactive=20s; 进阶

示例

基础性能优化

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    # Gzip
    gzip on;
    gzip_vary on;
    gzip_min_length 1000;
    gzip_types text/plain text/css application/json application/javascript text/xml;
}
适用于大多数场景的优化配置

反向代理缓存

http {
    proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m;
}
server {
    location /api/ {
        proxy_cache my_cache;
        proxy_cache_valid 200 10m;
        proxy_cache_valid 404 1m;
        proxy_pass http://backend;
    }
}
缓存后端响应,减少后端压力

Worker 进程优化

worker_processes auto;
worker_rlimit_nofile 65535;

events {
    worker_connections 4096;
    multi_accept on;
    use epoll;
}
高并发场景配置

常见错误

worker_connections are not enough 增加 worker_connections 值,同时确保系统 ulimit -n 足够大

技巧

相关命令