ubuntu

ubuntu nginx如何优化缓存

小樊
44
2025-09-19 15:22:15
栏目: 智能运维

在Ubuntu上优化Nginx缓存可以通过多种方式实现,以下是一些关键的优化步骤:

  1. 调整缓存大小

    • 打开Nginx配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/your-site
    • http块中,设置或调整proxy_cache_path指令来定义缓存的大小和路径。例如:
      http {
          ...
          proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
          ...
      }
      
    • levels定义了缓存目录的层级结构。
    • keys_zone定义了缓存区域的名称和大小。
    • max_size定义了缓存的最大总大小。
    • inactive定义了缓存项在不被访问后多久被清除。
    • use_temp_path设置为off可以减少磁盘I/O。
  2. 启用Gzip压缩

    • http块中,启用Gzip压缩可以减少传输数据的大小,从而提高加载速度。
      http {
          ...
          gzip on;
          gzip_vary on;
          gzip_proxied any;
          gzip_comp_level 6;
          gzip_buffers 16 8k;
          gzip_http_version 1.1;
          gzip_min_length 256;
          ...
      }
      
  3. 使用Keepalive

    • http块中,启用Keepalive可以减少建立和关闭连接的次数,从而提高性能。
      http {
          ...
          keepalive_timeout 65;
          keepalive_requests 100;
          ...
      }
      
  4. 调整工作进程和连接数

    • nginx.conf文件中,根据服务器的CPU核心数调整工作进程的数量。
      worker_processes auto; # 或者设置为CPU核心数
      
    • 同时,调整每个工作进程可以同时打开的最大连接数。
      events {
          worker_connections 1024; # 可以根据需要调整
      }
      
  5. 启用缓存静态文件

    • server块中,为静态文件启用缓存。
      server {
          ...
          location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
              expires 30d;
              add_header Cache-Control "public, no-transform";
          }
          ...
      }
      
  6. 使用HTTP/2

    • 如果客户端支持,可以在server块中启用HTTP/2以提高性能。
      server {
          ...
          listen 443 ssl http2;
          ...
      }
      
  7. 监控和调整

    • 使用Nginx的访问日志和错误日志来监控性能。
    • 使用工具如nginx-stats或第三方服务来分析日志并找出瓶颈。
  8. 定期清理缓存

    • 定期清理过期的缓存文件,以避免磁盘空间不足。
  9. 使用CDN

    • 对于全球访问的网站,考虑使用内容分发网络(CDN)来缓存静态资源,减少服务器负载。

在进行任何更改后,记得重新加载或重启Nginx服务以应用更改:

sudo nginx -s reload

请记住,优化是一个持续的过程,可能需要根据实际流量和性能数据进行调整。

0
看了该问题的人还看了