WEB服务与NGINX(14)-NGINX的压缩功能
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的压缩功能的更多相关文章
- flask在centos下搭建web服务【uwsgi,nginx】
centos操作系统 uWSGI是一个web服务器,Nginx进行反向代理的其实跟这些服务器可以说没有任何关系,你提供动态内容的服务器可以是apache/nginx/tomcat,当然也可以是uWSG ...
- Web服务器之Nginx详解(操作部分)
大纲 一.前言 二.Nginx 安装与配置 三.Nginx 配置文件详解 四.Nginx 命令参数 五.配置Nginx提供Web服务 六.配置Nginx的虚拟主机 七.配置Nginx的用户认证 八.配 ...
- Linux实战教学笔记37:企业级Nginx Web服务优化实战(上)
一,Nginx基本安全优化 1.1 调整参数隐藏Nginx软件版本号信息 一般来说,软件的漏洞都和版本有关,这个很像汽车的缺陷,同一批次的要有问题就都有问题,别的批次可能就都是好的.因此,我们应尽量隐 ...
- nginx 作为静态资源web服务
Nginx作为静态资源web服务 静态资源web服务-CDN场景 Nginx资源存储中心会把静态资源分发给“北京Nginx”,“湖南Nginx”,“山东Nginx”. 然后北京User发送静态资源请求 ...
- svn + nginx unit + python3自动化发布web服务方法
本周将python web服务管理更换成nginx unit以后发现接口性能有了明显的提升,访问速度快了不少.不过有个很大的问题就是使用svn自动化发布以后,服务并没有刷新使用新的代码运行,而又不懂得 ...
- Nginx 高级配置-压缩功能
Nginx 高级配置-压缩功能 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx压缩相关参数概述 1>.gzip on | off; Nginx支持对指定类型的文 ...
- nginx的gzip压缩功能
我们在开发网站的时候,应该要考虑到pv,因为pv比较大可能会造成服务器带宽不够用,进而导致用户体验变差. 这个时候我们就可以考虑用nginx的gzip功能. 在nginx中开启gzip压缩功能很简单, ...
- linux web服务基础知识,dns
#web服务基础知识c/s 客户端/服务器b/s 浏览器/服务器 nginx > web server 服务端浏览器 > web client 客户端 #dns解析 ...
- web服务的简单介绍及apache服务的安装
一,web服务的作用: 是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档.可以放置网站文件,让全世界浏览: 可以放置数据让全世界下载.目前最主流的三个Web服务器是Ap ...
- web服务基础
Web服务基础 用户访问网站的基本流程 我们每天都会用web客户端上网,浏览器就是一个web客户端,例如谷歌浏览器,以及火狐浏览器等. 当我们输入www.oldboyedu.com/时候,很快就能看到 ...
随机推荐
- [Unity] 为什么文件名和类名需要相同
挂载脚本时文件名和类名的关联方式 写过Unity脚本的人应该都知道,挂载脚本的文件名和类名必须相同 今天写新功能的时候偶然发现了这个规则的底层逻辑 并且发现这个规则并非必须的,实际上Unity是根据脚 ...
- #扫描线,线段树#洛谷 3875 [TJOI2010]被污染的河流
题目 分析 矩阵面积并不是扫描线模板题吗 然后连题目都没仔细看就交了 发现它是一个线段向外扩展一个格子qwq 代码 #include <cstdio> #include <cctyp ...
- Jetty的ssl模块
启用ssl模块,执行如下命令: java -jar $JETTY_HOME/start.jar --add-modules=ssl 命令的输出,如下: INFO : ssl initialized i ...
- OpenHarmony支持HDMI接口声卡适配说明
高清多媒体接口(High Definition Multimedia Interface,HDMI )是一种全数字化视频和声音发送接口,可以发送未压缩的音频及视频信号.HDMI可用于机顶盒.DV ...
- LiteOS-A内核中的procfs文件系统分析
一. procfs介绍 procfs是类UNIX操作系统中进程文件系统(process file system)的缩写,主要用于通过内核访问进程信息和系统信息,以及可以修改内核参数改变系统行为.需要注 ...
- 如何在 Python 中执行 MySQL 结果限制和分页查询
Python MySQL 限制结果 限制结果数量 示例 1: 获取您自己的 Python 服务器 选择 "customers" 表中的前 5 条记录: import mysql.c ...
- C#开发的PhotoNet看图软件 - 开源研究系列文章 - 个人小作品
这几天忙于编程.上次发布了壁纸管理器的插件版( https://www.cnblogs.com/lzhdim/p/18074135 ),然后整理和添加了一下相关的壁纸图片文件,虽然在管理器中也能浏览壁 ...
- docker 应用篇————mysql容器[十二]
前言 简单介绍一下mysql容器. 正文 这里简单介绍一下mysql的容器. hub.docker.io给了我们一个启动的示例. docker run --name some-mysql -e MYS ...
- iframe跨域,获取iframe中元素
1.需求让iframe嵌入页面,并且没有滚动条,也就是相当于两个页面拼接在一起 跨域解决,通过框架配置代理 proxy: { '/medical': { target: 'https://exampl ...
- 大数据时代下,App数据隐私安全你真的了解么?
简介:你是否有过这样的经历:你和朋友聊天表达你近期想要购买某件商品,第二天当你打开某购物软件时,平台向你推送的商品正是你想要购买的:或者,你是否接到过陌生来电,他们准确的报出了你的名字和年龄.... ...