提升网站性能:Nginx 启用 Gzip 压缩、缓存控制与 HTTP/2 配置教程
本文来自「码农资讯网」,专注 DevOps、PHP、数据库、系统运维干货。访问:www.codesou.cn,学习更多实战技巧。
一、为什么要优化静态资源传输?
网站打开慢、用户跳出率高,常见原因包括:
HTML/CSS/JS/图片未压缩,体积大
浏览器缓存未启用,重复加载资源
未启用 HTTP/2,无法并发加载请求
解决方案:
✅ Gzip 压缩 —— 减少资源体积
✅ 缓存控制 —— 提升浏览器缓存命中率
✅ 启用 HTTP/2 —— 提升并发传输效率
二、开启 Gzip 压缩
Gzip 是一种常见的网页压缩格式,支持几乎所有浏览器。
配置步骤:
打开你的 nginx.conf 或具体站点配置文件,在 http
或 server
段中添加:
nginx复制编辑gzip on;gzip_comp_level 6;gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;gzip_min_length 1024;gzip_vary on;gzip_disable "msie6";
参数说明:
gzip on;
开启 Gzipgzip_comp_level
压缩等级(1~9,越高越占 CPU)gzip_types
指定压缩的 MIME 类型gzip_min_length
最小压缩字节数,默认 20gzip_vary
配合缓存代理使用
📌 建议:只压缩文本内容,不压缩图片视频类二进制资源
三、浏览器缓存控制(Cache-Control)
避免每次都请求服务器,减少带宽浪费。
配置方式一:统一设置所有静态资源缓存策略
gzip on; gzip_comp_level 6; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; gzip_min_length 1024; gzip_vary on; gzip_disable "msie6";
配置方式二:按类型设置过期时间
location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg)$ { expires 30d; add_header Cache-Control "public"; }
🚨 注意:静态资源名若固定,强缓存更新困难;推荐使用 带版本号文件名(如
main.v3.js
)
四、启用 HTTP/2
前提要求:
必须使用 HTTPS(HTTP/2 只支持加密连接)
使用 Nginx 版本 ≥ 1.9.5(建议 1.17+)
修改配置:
server { listen 443 ssl http2; server_name www.codesou.cn; ssl_certificate /etc/letsencrypt/live/www.codesou.cn/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.codesou.cn/privkey.pem; ... }
只需在 listen 443 ssl
后添加 http2
即可。
五、实战案例配置片段
server { listen 443 ssl http2; server_name www.codesou.cn; root /www/wwwroot/codesou; index index.html index.php; # SSL配置略... # 启用 Gzip 压缩 gzip on; gzip_types text/plain application/javascript text/css application/json; gzip_min_length 1024; gzip_comp_level 6; # 浏览器缓存 location ~* \.(js|css|png|jpg|jpeg|gif|ico|woff|woff2|ttf|svg)$ { expires 30d; add_header Cache-Control "public"; } }
六、如何验证效果?
工具 | 用途 |
---|---|
GTMetrix | 检测压缩、缓存、HTTP2 |
Chrome DevTools > Network | 查看资源大小、缓存命中 |
curl -I --http2 https://xxx.com | 验证是否启用 HTTP/2 |
七、总结建议
✅ 启用 Gzip:压缩文本资源
✅ 配置缓存策略:减少重复请求
✅ 启用 HTTP/2:提高并发加载效率
✅ 持续优化:结合 CDN 使用效果更佳
1、部分文章来源于网络,仅作为参考。 2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!