gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 1024;
gzip_comp_level 6;
gzip_vary on;
gzip_proxied any;
参数说明:
- gzip on
:启用Gzip压缩
- gzip_types
:指定需要压缩的MIME类型
- gzip_min_length
:只压缩大于指定大小的响应
- gzip_comp_level
:压缩级别(1-9),6是较好的平衡点
- gzip_vary
:添加"Vary: Accept-Encoding"响应头
- gzip_proxied
:对代理请求也启用压缩
brotli on;
brotli_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
brotli_comp_level 6;
brotli_min_length 1024;
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
limit_except GET POST {
deny all;
}
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 405;
}
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
listen 443 ssl http2;
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options SAMEORIGIN;
add_header X-XSS-Protection "1; mode=block";
add_header Referrer-Policy "no-referrer-when-downgrade";
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https:; img-src 'self' https: data:; style-src 'self' 'unsafe-inline' https:; font-src 'self' https: data:";
测试压缩效果:使用工具如curl或浏览器开发者工具验证压缩是否生效
curl -I -H "Accept-Encoding: gzip" http://yourdomain.com
监控性能:实施前后监控服务器负载和带宽使用情况
渐进式实施:先在测试环境验证配置,再逐步应用到生产环境
定期更新:保持Nginx和压缩模块的最新版本以获得最佳性能和安全性
这些优化措施可以显著减少传输数据量,提高页面加载速度,同时增强安全性。