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/时候,很快就能看到 ...
随机推荐
- 【Java】请写出你最常见到的 5 个 runtime exception
请写出你最常见到的 5 个 runtime exception. 参考:https://blog.csdn.net/qq_20417499/article/details/80222820 Cla ...
- 记打包的2个错误-项目BotBattle
目录 记打包项目的 2 个错误 0.概述 1.spring-boot-maven-plugin 版本 1.1 问题 1.2 添加版本号 2.总项目 2.1 问题 2.2 核验主类 2.3backend ...
- #dp,高精度#洛谷 4295 [SCOI2003]严格N元树
题目 求有多少棵严格 \(n\) 叉树深度为 \(k\) 分析 考虑往下放子孙挺难维护的,考虑在上面换新的根. 设 \(dp[i]\) 表示深度不超过 \(i\) 的方案数,那么 \(dp[i]=dp ...
- Pandas对象(数据结构)
Pandas是Python的一个扩展程序库,是在Numpy基础上建立的,提供高性能.易使用的数据结构和数据分析工具. Pandas 可以从各种文件格式比如 CSV.JSON.SQL.Excel 等中导 ...
- RabbitMQ 04 直连模式-Java操作
使用Java原生的方式使用RabbitMQ现在已经较少,但这是基础,还是有必要了解的. 引入依赖. <dependency> <groupId>com.rabbitmq< ...
- 一个很好用的ORM库--peewee
发现一个很好用的 ORM 库 -- peewee 以下为简单示例 from peewee import * db = SqliteDatabase('test.db') # 定义表结构 class P ...
- SSM使用自定义ConditionalOnProperty实现按需加载spring bean
SSM使用自定义ConditionalOnProperty实现按需加载spring bean 背景: 公司提供的系统框架是SSM架构,SSM架构是没有springboot的ConditionalOnP ...
- javascript现代编程系列教程之一:区块作用域对VAR不起作用的问题
在JavaScript中,使用var声明的变量具有函数作用域,而不是块级作用域.这意味着在一个函数内部,使用var声明的变量在整个函数范围内都是可见的,包括嵌套的块(如if语句.for循环等).为了避 ...
- Oracle 简单的创建一个定时任务job
Oracle 简单的创建一个定时任务job Oracle 简单的创建一个定时任务job 没有什么前置步骤,无非就是把存储过程或者SQL提前写好,就不说了,直接执行一下下面的语句即可创建一个job de ...
- 力扣344(java & python)-反转字符串(简单)
题目: 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这一问题. 示例 1 ...