Nginx 是一个高性能的 HTTP 和反向代理服务器,它可以用来优化静态资源的传输。以下是一些建议和技巧,可以帮助你优化 Nginx 上的静态资源:
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;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public";
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
etag on;
if_modified_since exact;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
}
http {
keepalive_requests 100;
}
使用 CDN:将静态资源部署到 CDN(内容分发网络)上,可以让用户从离他们最近的服务器获取资源,从而减少延迟和提高加载速度。
减少重定向:尽量避免不必要的重定向,因为重定向会增加额外的 HTTP 请求,从而影响性能。
合并和压缩 CSS 和 JavaScript 文件:将多个 CSS 或 JavaScript 文件合并成一个文件,可以减少 HTTP 请求的数量。同时,可以使用工具(如 UglifyJS 或 Clean-CSS)压缩这些文件,以减小文件大小。
使用 HTTP/2:HTTP/2 支持多路复用,可以在一个 TCP 连接上同时传输多个资源,从而减少连接建立和关闭的开销。在 Nginx 配置文件中启用 HTTP/2:
server {
listen 443 ssl http2;
...
}
通过实施这些优化措施,你可以显著提高 Nginx 上静态资源的传输性能。