1. nginx压缩功能

nginx支持对指定类型的文件进行压缩后再回传给客户端,而且压缩可以设置压缩比,压缩后的文件会明显变小,有助于降低出口带宽的利用率,但是会占用一定的CPU资源。

nginx实现压缩功能是由ngx_http_gzip_module模块提供的。

  • gzip on | off;

    支持环境:http,server,location,if in location

    启用或禁用gzip压缩功能。

  • gzip_comp_level level;

    支持环境:http,server,location

    指定压缩比,压缩比由低到高:1 到 9,默认为1

  • gzip_disable regex …;

    支持环境:http,server,location

    如果请求的User-Agent头信息能被指定的正则表达式匹配,则对响应报文禁用gzip压缩功能。主要是为了兼容不支持gzip压缩的浏览器,比如IE6,不过IE6早就废弃了。

    禁用IE6的压缩功能:gzip_disable “MSIE [1-6].”;

  • gzip_min_length length;

    支持环境:http,server,location

    响应报文想要激活压缩功能的下限大小,报文太小的没有压缩意义,压缩后反而变大,默认为20个字节。

  • gzip_http_version 1.0 | 1.1;

    支持环境:http,server,location

    设置压缩响应所需的请求的最低HTTP协议版本,默认为1.1

  • gzip_buffers number size;

    支持环境:http,server,location

    设置支持压缩功能时缓冲区数量及每个缓存区的大小,默认大小为一个内存页(64位为8k)。

  • gzip_types mime-type …;

    支持环境:http,server,location

    指明仅对哪些类型的资源执行压缩操作,多个用空格分隔。通配符[ * ]可以匹配任意类型。不管是否指定”text/html”类型,该类型的响应总是启用压缩。

    示例:gzip_types text/plain application/xml;

  • gzip_vary on | off;

    支持环境:http,server,location

    如果启用压缩,是否在响应报文首部插入“Vary: Accept-Encoding”

  • gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any ...;

    支持环境:http,server,location

    nginx充当代理服务器时,对于后端服务器的响应报文,在何种条件下启用压缩功能

    参数说明

    off:禁用所有代理请求的压缩,忽略其他参数;

    expired:如果响应头“Cache-Control”字段包含" expired",则启用压缩;

    no-cache:如果响应头“Cache-Control”字段包含" no-cache",则启用压缩;

    no-store:如果响应头“Cache-Control”字段包含" no-store",则启用压缩;

    private:如果响应头“Cache-Control”字段包含"private",则启用压缩;

    no_last_modified:如果响应头部不包含"Last-Modified"字段,则启用压缩

    no_etag:如果响应头部不包含"Etag"字段,则启用压缩

    auth:如果响应头包含"Authorization",则启用压缩;

    any:为所有代理请求启用压缩

压缩功能使用示例如下:

#1.nginx的配置文件如下:
[root@nginx01 ~]# cat /etc/nginx/conf.d/virtualhost.conf
server {
listen 80;
server_name www.nginx01.com;
keepalive_requests 3;
keepalive_timeout 60 60;
charset utf-8,gbk; gzip on;
gzip_comp_level 6;
gzip_min_length 64k;
gzip_types text/plain appliaction/javascript application/x-javascript text/cssapplication/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on; location / {
root /data/nginx/html/web1;
index index.html;
}
} #2.复制日志文件,并修改文件的属主,否则nginx用户无权访问该文件
[root@nginx01 ~]# cp /var/log/messages-20210606 /data/nginx/html/web1/message.html
[root@nginx01 ~]# ll /data/nginx/html/web1/message.html
-rw------- 1 root root 1939879 Jun 17 22:32 /data/nginx/html/web1/message.html
[root@nginx01 ~]# chown nginx.nginx /data/nginx/html/web1/message.html [root@nginx01 ~]# ll /data/nginx/html/web1/index.html
-rw-r--r-- 1 nginx nginx 16 Jun 16 21:56 /data/nginx/html/web1/index.html #3.重启nginx服务
[root@nginx01 web1]# systemctl reload nginx.service #4.客户端测试压缩功能,curl要使用--compress参数才会支持压缩
#index.html文件小于64k,未进行压缩
[root@xuzhichao ~]# curl --head --compress http://www.nginx01.com
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 17 Jun 2021 14:42:56 GMT
Content-Type: text/html; charset=utf-8,gbk
Content-Length: 16
Last-Modified: Wed, 16 Jun 2021 13:56:31 GMT
Connection: keep-alive
Keep-Alive: timeout=60
ETag: "60ca030f-10"
Accept-Ranges: bytes #message.html文件启用的压缩
[root@xuzhichao ~]# curl --head --compress http://www.nginx01.com/message.html
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 17 Jun 2021 14:43:05 GMT
Content-Type: text/html; charset=utf-8,gbk
Last-Modified: Thu, 17 Jun 2021 14:32:15 GMT
Connection: keep-alive
Keep-Alive: timeout=60
Vary: Accept-Encoding
ETag: W/"60cb5cef-1d99a7"
Content-Encoding: gzip <==启用压缩

WEB服务与NGINX(14)-NGINX的压缩功能的更多相关文章

  1. flask在centos下搭建web服务【uwsgi,nginx】

    centos操作系统 uWSGI是一个web服务器,Nginx进行反向代理的其实跟这些服务器可以说没有任何关系,你提供动态内容的服务器可以是apache/nginx/tomcat,当然也可以是uWSG ...

  2. Web服务器之Nginx详解(操作部分)

    大纲 一.前言 二.Nginx 安装与配置 三.Nginx 配置文件详解 四.Nginx 命令参数 五.配置Nginx提供Web服务 六.配置Nginx的虚拟主机 七.配置Nginx的用户认证 八.配 ...

  3. Linux实战教学笔记37:企业级Nginx Web服务优化实战(上)

    一,Nginx基本安全优化 1.1 调整参数隐藏Nginx软件版本号信息 一般来说,软件的漏洞都和版本有关,这个很像汽车的缺陷,同一批次的要有问题就都有问题,别的批次可能就都是好的.因此,我们应尽量隐 ...

  4. nginx 作为静态资源web服务

    Nginx作为静态资源web服务 静态资源web服务-CDN场景 Nginx资源存储中心会把静态资源分发给“北京Nginx”,“湖南Nginx”,“山东Nginx”. 然后北京User发送静态资源请求 ...

  5. svn + nginx unit + python3自动化发布web服务方法

    本周将python web服务管理更换成nginx unit以后发现接口性能有了明显的提升,访问速度快了不少.不过有个很大的问题就是使用svn自动化发布以后,服务并没有刷新使用新的代码运行,而又不懂得 ...

  6. Nginx 高级配置-压缩功能

    Nginx 高级配置-压缩功能 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx压缩相关参数概述 1>.gzip on | off; Nginx支持对指定类型的文 ...

  7. nginx的gzip压缩功能

    我们在开发网站的时候,应该要考虑到pv,因为pv比较大可能会造成服务器带宽不够用,进而导致用户体验变差. 这个时候我们就可以考虑用nginx的gzip功能. 在nginx中开启gzip压缩功能很简单, ...

  8. linux web服务基础知识,dns

    #web服务基础知识c/s 客户端/服务器b/s 浏览器/服务器 nginx   >   web  server  服务端浏览器  >    web  client  客户端 #dns解析 ...

  9. web服务的简单介绍及apache服务的安装

    一,web服务的作用:  是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档.可以放置网站文件,让全世界浏览:   可以放置数据让全世界下载.目前最主流的三个Web服务器是Ap ...

  10. web服务基础

    Web服务基础 用户访问网站的基本流程 我们每天都会用web客户端上网,浏览器就是一个web客户端,例如谷歌浏览器,以及火狐浏览器等. 当我们输入www.oldboyedu.com/时候,很快就能看到 ...

随机推荐

  1. Typora基础使用教程

    Typora基础使用教程(入门级) 安装和激活 安装 typora任意地方搜索下载即可 激活 百度网盘链接链接:https://pan.baidu.com/s/1WKig_3-hkDZTRjS1rgG ...

  2. AtCoder Beginner Contest 347

    AT link Problem A and B 略. Problem C 按照模 \(a + b\) 分类,记录最大值和最小值,如果差值小于等于假期时间即可,否则还需要判断按照 \(d_i = D_i ...

  3. Avalonia的Window生命周期

    Avalonia中的Window 在Avalonia中,Window是一个基本的UI元素,它代表了一个应用程序的窗口.每个Window都可以包含其他的UI元素,如按钮.文本框等,并可以响应各种用户输入 ...

  4. TensorRT C# API 项目更新 (1):支持动态Bath输入模型推理

    1. 项目介绍    NVIDIA TensorRT 是一款用于高性能深度学习推理的 SDK,包括深度学习推理优化器和运行时,可为推理应用程序提供低延迟和高吞吐量.基于 NVIDIA TensorRT ...

  5. Tomcat启动闪退的10个解决小技巧

    引言 大家好!在我们日常开发中,使用Tomcat作为Web服务器是相当常见的. 然而,遇到Tomcat启动后立即闪退的问题也不是什么稀罕事. 这种情况可能会让人感到困惑和沮丧,特别是当你急需完成一个项 ...

  6. c# mvc 移除多于的视图引擎

    前言 在我们的mvc中,我们又很多视图引擎是不需要的.为什么这么说呢? 我们知道计算机玩的就是遍历. 上图中我们可以看到,首先找的是index.aspx,因为我们都是cshtml,那么去映射的时候呢每 ...

  7. 重新整理数据结构与算法(c#)—— 顺序存储二叉树[十九]

    前言 二叉树顺序存bai储是二叉树的一种存储方式.将二du叉树存储在一zhi个数组中,通过存储元素的下dao标反映元素之间的父子关系. 正文 这个概念比较简单,比如一个节点的在数组的index是x,那 ...

  8. spring-jdbc5新特性,一个配置文件解决临时修改数据库的问题

    import java.sql.SQLException; import java.util.List; import java.util.Map; import javax.sql.DataSour ...

  9. 鸿蒙HarmonyO实战-ArkUI动画(组件内转场动画)

    前言 转场动画是一种在电影.视频和演示文稿中使用的动画效果,用于平滑地切换不同的场景或幻灯片.转场动画可以增加视觉吸引力,改善观众的观看体验. 常见的转场动画包括淡入淡出.滑动.旋转.放大缩小等效果. ...

  10. 为什么序列化要实现Serializable接口

    为什么实现了Serializable接口就会序列化? 实现了Java中的Serializable接口的类会被称为可序列化的,这意味着它们的实例可以被序列化为字节流,以便于在网络上传输.保存到文件中或者 ...