ubuntu

Ubuntu下nginx性能如何优化

小樊
34
2025-07-12 04:46:38
栏目: 智能运维

在Ubuntu下优化Nginx性能可以通过多种方法实现,主要包括进程模型调优、传输效率优化、缓存策略优化、操作系统调优等。以下是详细的优化措施:

  1. 进程模型调优

    • worker_processes auto;:自动匹配CPU核心数。
    • worker_cpu_affinity auto;:CPU亲和性绑定。
    • worker_rlimit_nofile 65535;:突破系统文件限制。
    • events { worker_connections 4096; }:单个进程承载连接数。
    • multi_accept on;:批量接收新连接。
    • use epoll;:使用高效事件模型。
  2. 传输效率优化

    • client_body_buffer_size 16k;:请求体缓冲区大小。
    • client_header_buffer_size 4k;:请求头缓冲区大小。
    • large_client_header_buffers 4 32k;:超大请求头处理。
    • client_max_body_size 20m;:最大上传文件限制。
    • client_body_timeout 30s;:请求体超时时间。
    • sendfile on;:零拷贝传输。
    • tcp_nopush on;:合并数据包发送。
  3. 压缩配置

    • gzip on;:启用压缩。
    • gzip_min_length 1k;:超过1KB才压缩。
    • gzip_comp_level 4;:压缩级别(1-9)。
    • gzip_types text/plain application/xml application/json;:压缩文件类型。
    • gzip_vary on;:兼容老旧代理服务器。
  4. 缓存策略优化

    • 静态资源缓存:
      • location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 365d; }:开启内存缓存。
      • add_header Cache-Control "public, max-age=31536000";
      • open_file_cache max=1000 inactive=20s;
      • open_file_cache_valid 30s;
      • open_file_cache_min_uses 2;
    • 代理缓存加速:
      • proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g;
      • location / { proxy_cache my_cache; }
  5. 操作系统调优

    • 内核参数调整:
      • net.core.somaxconn = 65535;:最大待处理数据包。
      • net.ipv4.ip_local_port_range = 1024 65535;:临时端口范围。
      • net.ipv4.tcp_tw_reuse = 1;:快速回收TIME-WAIT连接。
      • net.ipv4.tcp_tw_recycle = 1;:最大打开文件数。
      • fs.file-max = 209;
  6. 其他优化建议

    • 启用HTTP/2:
      • listen 443 ssl http2;:启用HTTP/2协议。
      • ssl_protocols TLSv1.2 TLSv1.3;:仅保留安全协议。
      • ssl_session_cache shared:SSL:10m;:会话复用配置。

通过这些优化措施,可以显著提升Nginx在Ubuntu上的性能,从而更好地服务于用户。

0
看了该问题的人还看了