nginx如何开通gzip压缩传输文件

 更新时间:2024年09月23日 10:35:26   作者:夏诗曼CharmaineXia  
Gzip压缩是一种有效提升网站性能的方法,通过减少传输数据量和提高传输速度,Nginx服务器支持Gzip压缩,适合压缩HTML、CSS、JavaScript、JSON和XML等文本文件,配置中需设置gzip_types指定压缩文件类型,gzip_comp_level设置压缩级别

一、简介

gzip是一种改进web应用程序性能的技术,文件压缩后再传输可以减少传输数据,提升传输速度。

在Nginx服务器上开启Gzip压缩可以有效减少网络传输流量,提升网站性能。

是否支持gzip

服务端将响应头设置上 Content-encoding: gzip,表示当前资源会使用 gzip 压缩,提示客户端解压使用。

当然前提是客户端支持该压缩算法,服务端会通过客户端发送的请求头中的 Accept-Encoding 字段来确定是否支持。

什么样的数据需要用Gzip压缩

Gzip压缩适用于文本文件类型,特别是那些具有较高的重复性和冗余性的文件:

  1. HTML文件:HTML文件通常包含大量的标记和文本内容,其中有很多重复的标签和文本片段。通过对HTML文件进行Gzip压缩,可以大大减少文件大小,提高传输效率。
  2. CSS文件:CSS文件包含了网页的样式信息,其中包括选择器、属性和值等。由于CSS文件通常较大,并且具有大量的重复内容,使用Gzip压缩可以显著减小文件大小。
  3. JavaScript文件:JavaScript文件包含了网页的交互逻辑和功能代码。JavaScript文件通常较大,通过Gzip压缩可以减少文件大小,提高加载速度。
  4. JSON文件:JSON是一种常用的数据交换格式,用于在客户端和服务器之间传输数据。由于JSON文件通常包含大量的文本数据,使用Gzip压缩可以减少数据传输量,提高传输效率。
  5. XML文件:XML文件用于存储和传输结构化数据,其中包含了标签、属性和文本内容。通过对XML文件进行Gzip压缩,可以减少文件大小,提高传输速度。

对于已经经过压缩的文件(如图片、音视频文件等),再次使用Gzip压缩通常不会带来显著的效果,甚至可能导致压缩后的文件更大。

二、Nginx服务器配置

2.1 安装和配置Nginx服务器

sudo apt-get update
sudo apt-get install nginx

2.2 开启Gzip模块

在Nginx配置文件中的http块内添加以下内容:

http {
    gzip on;
    gzip_types text/plain application/javascript;
}

这里的gzip on表示开启gzip压缩,gzip_types指定需要进行压缩的文件类型,例如text/plain表示纯文本文件,application/javascript表示JavaScript文件。

三、Gzip压缩配置

3.1 压缩文件类型配置

gzip_types用于指定需要进行压缩的文件类型,例如text/html表示HTML文件,text/css表示CSS文件,application/json表示JSON文件。

gzip_vary on表示在响应头中添加Vary字段,用于缓存服务器根据Accept-Encoding字段进行缓存策略的选择。

http {
    gzip_types text/html text/css application/json;
    gzip_vary on;
}

3.2 压缩级别配置

gzip_comp_level用于指定压缩级别,取值范围为1-9,级别越高压缩比越大,但压缩时间也会增加。

http {
    gzip_comp_level 5;
}

3.3 压缩缓冲配置

gzip_buffers用于指定压缩时使用的缓冲区数量和大小,这里的配置表示使用16个缓冲区,每个缓冲区大小为8KB。

gzip_disable用于指定不使用gzip压缩的浏览器,这里的配置表示禁止对IE6及以下版本进行压缩。

http {
    gzip_buffers 16 8k;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
}

四、Gzip压缩效果验证

开启gzip压缩后,可以通过浏览器的开发者工具来验证压缩效果。

打开开发者工具的Network选项卡,选择一个请求并查看其响应头,如果响应头中包含Content-Encoding: gzip,则表示该资源已经使用gzip进行了压缩。

  • 开启前

  • 开启后

总结

文件大小缩小了一倍多,效果非常明显

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • nginx服务器搭建和配置详解

    nginx服务器搭建和配置详解

    本篇文章主要介绍了nginx服务器搭建和配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Mac M1 Nginx 配置多站点的实现

    Mac M1 Nginx 配置多站点的实现

    这篇文章主要介绍了Mac M1 Nginx 配置多站点的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Centos7 安装Nginx整合Lua的示例代码

    Centos7 安装Nginx整合Lua的示例代码

    这篇文章主要介绍了Centos7 安装Nginx整合Lua的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Nginx限制某个IP同一时间段的访问次数和请求数示例代码

    Nginx限制某个IP同一时间段的访问次数和请求数示例代码

    nginx可以通过ngx_http_limit_conn_module和ngx_http_limit_req_module配置来限制ip在同一时间段的访问次数.具体示例代码大家参考下本文
    2017-08-08
  • 详解Ngigx+Tomcat配置动静分离,负载均衡

    详解Ngigx+Tomcat配置动静分离,负载均衡

    本篇文章主要介绍了Ngigx+Tomcat配置动静分离,负载均衡,具有一定的参考价值,有需要的可以了解一下。
    2016-11-11
  • 在Linux和Windows系统上安装Nginx服务器的教程

    在Linux和Windows系统上安装Nginx服务器的教程

    这篇文章主要介绍了在Linux和Windows系统上安装Nginx服务器的教程,Linux系统这里以CentOS为代表,需要的朋友可以参考下
    2015-08-08
  • 从Nginx切换到Tengine的步骤分享

    从Nginx切换到Tengine的步骤分享

    由淘宝网发起的Web服务器 Tengine 可以被看作一个更好的Nginx,或者是Nginx的超集。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性
    2012-11-11
  • Nginx轻松搞定跨域问题完整过程

    Nginx轻松搞定跨域问题完整过程

    这篇文章主要给大家介绍了关于Nginx轻松搞定跨域问题的相关资料,大家在使用nginx进行服务器管理,经常会遇到跨域问题,文中将解决方法介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • Nginx服务器初期基本配置指南

    Nginx服务器初期基本配置指南

    这篇文章主要介绍了Nginx服务器初期基本配置指南,包括重定向以及基本的负载均衡配置等,需要的朋友可以参考下
    2016-01-01
  • windows下Nginx多域名简单配置教程

    windows下Nginx多域名简单配置教程

    这篇文章主要为大家详细介绍了windows下Nginx多域名简单配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07

最新评论