参考资料

  1. Nginxreferer:请求头控制模块详细说明以及案例
  2. NginxMemcached缓存模块详细说明以及案例
  3. nginx是否需要开启HTTP/2支持以提高安全性?
  4. 如何优化Nginx性能?
  5. nginx代理详细讲解
  6. Nginx upstream容错机制详解详细说明以及案例
  7. 如何通过响应头防御XSS?
  8. nginx -g详细说明以及案例

如何设置Nginx的Gzip压缩?

  1. 编辑Nginx配置文件
    主配置文件通常位于:

    • /etc/nginx/nginx.conf

    • 或站点配置文件如 /etc/nginx/conf.d/default.conf

  2. httpserver 模块中添加配置

    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_comp_level 6;
    gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml image/svg+xml;
    gzip_vary on;
    gzip_proxied any;
    gzip_disable "MSIE [1-6]\.";
  3. 参数说明

    • gzip on:启用 Gzip 压缩

    • gzip_min_length 1k:仅压缩大于 1KB 的文件

    • gzip_buffers 4 16k:分配 4 个 16KB 的压缩缓冲区

    • gzip_comp_level 6:压缩级别(1-9,6 为平衡性能与压缩率)

    • gzip_types:指定压缩的文件类型(如文本、JS、CSS、JSON 等)

    • gzip_vary on:告知客户端支持 Gzip 压缩

    • gzip_proxied any:对代理请求也启用压缩

    • gzip_disable:禁用旧版 IE 的压缩(兼容性)

  4. 验证并重启 Nginx

    sudo nginx -t    # 检查配置语法
    sudo systemctl restart nginx  # 重启生效
  5. 测试压缩是否生效

    • 使用浏览器开发者工具查看响应头,确认包含 Content-Encoding: gzip

    • 或通过 curl 测试:  

      curl -H "Accept-Encoding: gzip" -I http://yourdomain.com | grep "Content-Encoding"