Nginx gzip配置

1 阅读2分钟

Nginx 的 gzip 模块可以有效地压缩发送到客户端的数据,比如 HTML、CSS、JavaScript 文件等,以减少传输时间,提升页面加载速度。要配置 Nginx 以使用 gzip 压缩,你需要在 Nginx 的配置文件中(通常是 nginx.conf 或包含在其中的某个站点配置文件)进行以下设置。

以下是一个基本的 gzip 配置示例,你可以将其添加到你的 Nginx 配置文件中:

http {
    # ... 其他配置 ...

    # 开启 gzip
    gzip on;

    # 设置 gzip 压缩级别,1-9,9 压缩级别最高,最耗时
    gzip_comp_level 6;

    # 设置不需要压缩的资源类型


    gzip_types text/plain text/css application/json application/javascript     text/xml application/xml application/xml+rss text/javascript;


    # 设置 gzip 压缩的缓冲区大小
    gzip_buffers 16 8k;

    # 对特定的 HTTP 响应头进行压缩
    gzip_http_version 1.1;



    # 是否在http header中添加Vary: Accept-Encoding,以允许压缩的页面在代理服务器缓存

    gzip_vary on;

    # 禁用对 IE6 的 gzip 压缩
    gzip_disable "MSIE [1-6].";

    # 服务器级别的 gzip 配置结束

    # ... 其他 http 块配置 ...

    server {
        # ... 服务器配置 ...

        # 可以为每个 location 单独设置 gzip 配置,如果不设置则使用上面的全局配置

        location / {
            # 可以在这里设置特定的 gzip 配置,如果没有则继承全局配置
            # 例如:gzip_comp_level 9; 仅为这个 location 设置更高的压缩级别

            # ... 其他 location 配置 ...
        }

        # ... 其他 server 配置 ...
    }

    # ... 其他 server 块配置 ...
}

注意:

  • gzip_types 指令定义了哪些 MIME 类型的资源应该被压缩。根据你的网站需求,你可能需要添加或删除一些类型。
  • gzip_comp_level 的值可以根据你的服务器性能和压缩时间的需求进行调整。
  • gzip_disable 可以用来针对某些用户代理(如老旧的浏览器)禁用 gzip 压缩,因为它们可能不支持 gzip 压缩。
  • 在实际应用中,根据你的具体需求,可能还需要对配置进行调整。

最后,记得在修改配置后重新加载 Nginx 以使更改生效。可以使用 nginx -s reload 命令或 systemctl reload nginx(取决于你的系统和服务管理方式)来重新加载 Nginx 配置。