linux

Nginx如何优化静态资源

小樊
49
2025-05-16 08:13:33
栏目: 编程语言

Nginx 是一个高性能的 HTTP 和反向代理服务器,它可以用来优化静态资源的传输。以下是一些建议和技巧,可以帮助你优化 Nginx 上的静态资源:

  1. 启用 Gzip 压缩:Gzip 可以减小传输文件的大小,从而减少传输时间。在 Nginx 配置文件中启用 Gzip 压缩:
http {
    gzip on;
    gzip_comp_level 5;
    gzip_min_length 256;
    gzip_proxied any;
    gzip_vary on;

    gzip_types
        application/atom+xml
        application/javascript
        application/json
        application/ld+json
        application/manifest+json
        application/rss+xml
        application/vnd.geo+json
        application/vnd.ms-fontobject
        application/x-font-ttf
        application/x-web-app-manifest+json
        application/xhtml+xml
        application/xml
        font/opentype
        image/bmp
        image/svg+xml
        image/x-icon
        text/cache-manifest
        text/css
        text/plain
        text/vcard
        text/vnd.rim.location.xloc
        text/vtt
        text/x-component;
}
  1. 使用 Cache-Control:通过设置 Cache-Control 头部,可以控制浏览器缓存静态资源的时间。在 Nginx 配置文件中设置 Cache-Control:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 30d;
    add_header Cache-Control "public";
}
  1. 启用浏览器缓存:通过设置 ETag 和 Last-Modified 头部,可以让浏览器缓存静态资源。在 Nginx 配置文件中启用浏览器缓存:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    etag on;
    if_modified_since exact;
}
  1. 使用 sendfile:sendfile 可以减少文件描述符的使用,提高静态文件的传输性能。在 Nginx 配置文件中启用 sendfile:
http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
}
  1. 使用 keepalive:keepalive 可以减少 TCP 连接的建立和关闭次数,提高静态文件的传输性能。在 Nginx 配置文件中启用 keepalive:
http {
    keepalive_requests 100;
}
  1. 使用 CDN:将静态资源部署到 CDN(内容分发网络)上,可以让用户从离他们最近的服务器获取资源,从而减少延迟和提高加载速度。

  2. 减少重定向:尽量避免不必要的重定向,因为重定向会增加额外的 HTTP 请求,从而影响性能。

  3. 合并和压缩 CSS 和 JavaScript 文件:将多个 CSS 或 JavaScript 文件合并成一个文件,可以减少 HTTP 请求的数量。同时,可以使用工具(如 UglifyJS 或 Clean-CSS)压缩这些文件,以减小文件大小。

  4. 使用 HTTP/2:HTTP/2 支持多路复用,可以在一个 TCP 连接上同时传输多个资源,从而减少连接建立和关闭的开销。在 Nginx 配置文件中启用 HTTP/2:

server {
    listen 443 ssl http2;
    ...
}

通过实施这些优化措施,你可以显著提高 Nginx 上静态资源的传输性能。

0
看了该问题的人还看了