温馨提示×

Nginx如何优化CentOS性能

小樊
58
2025-08-22 18:54:02
栏目: 智能运维

优化Nginx在CentOS上的性能可从系统内核、Nginx配置、资源利用等方面入手,具体如下:

  • 系统内核参数优化
    调整TCP连接和文件描述符限制,编辑/etc/sysctl.conf

    net.ipv4.tcp_max_tw_buckets=6000  # 减少TIME_WAIT连接  
    net.ipv4.tcp_tw_reuse=1          # 启用TIME_WAIT重用  
    net.core.somaxconn=65535         # 增加连接队列长度  
    fs.file-max=10000000             # 提升最大文件描述符数  
    

    应用配置:sysctl -p

  • Nginx进程与连接优化

    • 设置工作进程数为CPU核心数:worker_processes auto;
    • 每个进程最大连接数建议1024-4096:worker_connections 1024;
    • 启用epoll事件模型(Linux专用):use epoll;
  • 网络与传输优化

    • 启用sendfiletcp_nopush减少数据拷贝:
      http {  
        sendfile on;  
        tcp_nopush on;  
      }  
      ```。  
      
    • 调整keepalive_timeout(建议30-60秒)减少连接开销:
      http {  
        keepalive_timeout 60s;  
      }  
      ```。  
      
      
  • 缓存与压缩优化

    • 静态资源缓存(图片、CSS、JS等):
      location ~* \.(jpg|css|js)$ {  
        expires 30d;  
        add_header Cache-Control "public";  
      }  
      ```。  
      
    • 启用Gzip压缩(压缩级别6-9,数值越大CPU占用越高):
      http {  
        gzip on;  
        gzip_comp_level 6;  
        gzip_types text/css application/javascript;  
      }  
      ```。  
      
      
  • SSL/TLS优化
    仅启用TLS 1.2/1.3,优化加密套件:

    server {  
      ssl_protocols TLSv1.2 TLSv1.3;  
      ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM';  
      ssl_prefer_server_ciphers on;  
      ssl_session_cache shared:SSL:10m;  
    }  
    ```。  
    
    
  • 负载与安全优化

    • 使用limit_reqlimit_conn限制异常流量:
      limit_req_zone $binary_remote_addr zone=req:10m rate=10r/s;  
      location / {  
        limit_req zone=req burst=20;  
      }  
      ```。  
      
    • 启用HTTP/2提升多路复用效率:listen 443 ssl http2;
  • 监控与调优工具

    • 实时监控:tophtopss -ti(查看TCP连接)。
    • 日志分析:通过access_log定位高频请求或错误。
    • 压力测试:使用abwrk模拟高并发请求,验证优化效果。

注意:优化需结合服务器硬件配置(如CPU、内存、SSD磁盘)和实际业务场景调整,优先在测试环境验证后再应用到生产环境。

0