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 上靜態資源的傳輸性能。