nginx如何提高网站性能

以下是提升Nginx网站性能的关键优化方向及配置建议:

一、系统与进程优化

  • 调整工作进程
    worker_processes auto; // 自动匹配CPU核心数
    worker_connections 65535; // 单进程最大连接数,需配合worker_rlimit_nofile
  • 启用高效事件模型
    use epoll; // Linux下高性能事件驱动机制
    multi_accept on; // 批量接收新连接,减少上下文切换

二、连接与资源管理

  • 优化TCP参数
    keepalive_timeout 65; // 长连接超时时间
    keepalive_requests 1000; // 单连接最大请求数
  • 零拷贝传输
    sendfile on; // 减少内核与用户空间数据拷贝
    tcp_nopush on; // 合并TCP数据包,提升传输效率

三、缓存策略

  • 静态资源缓存
    location ~* \.(jpg|css|js)$ {  
      expires 365d;  
      add_header Cache-Control "public";  
    }  
    ``` // 缓存静态文件1年,减少重复请求  
    
  • 代理缓存
    proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m;  
    proxy_cache my_cache;  
    proxy_cache_valid 200 10m; // 缓存200状态码响应10分钟  
    ``` // 缓存后端动态内容,减轻服务器压力  
    
    

四、协议与压缩优化

  • 启用HTTP/2
    listen 443 ssl http2; // 支持多路复用,降低延迟
  • Gzip压缩
    gzip on;  
    gzip_types text/css application/json;  
    gzip_comp_level 6; // 压缩级别(1-9,平衡CPU与压缩率)  
    ``` // 减少传输数据量,提升页面加载速度  
    
    

五、负载均衡与安全

  • 动态负载均衡
    upstream backend {  
      least_conn; // 按最小连接数分配请求  
      server 10.0.0.1:8080 weight=3; // 权重配置  
    }  
    ``` // 避免单点压力过大  
    
  • 限流防护
    limit_req_zone $binary_remote_addr zone=api:10m rate=100r/s;  
    location /api/ {  
      limit_req zone=api burst=50 nodelay; // 限制突发请求  
    }  
    ``` // 防止恶意流量压垮服务器  
    
    

六、监控与调优

  • 启用状态监控
    location /nginx_status {  
      stub_status;  
      allow 127.0.0.1;  
    }  
    ``` // 查看活跃连接、请求速率等指标  
    
  • 日志优化
    access_log off; // 关闭非必要访问日志,减少I/O

:优化后需通过nginx -t测试配置正确性,再nginx -s reload重新加载。实际参数需根据服务器硬件(如CPU/内存)和业务场景(如高并发API或静态资源站)调整。