nginx优化--gzip压缩与expire浏览器缓存

gzip压缩

概述

网页在服务器端经过了gzip或者其他格式的压缩后的输出明显减少了content-length字节,当访问过百万时,这些减少的字节就会变为客观的流量给节约下来;从而减轻服务器的压力以及网页的访问速度;

原理

客户端在向服务端发送http请求时,在请求头中有一个Accept-Encoding的头信息,该头信息告知服务器端本客服端能接收什么样的压缩文件,如果服务器端配置了压缩的需求,就会返回相应的压缩文件,然后浏览器再解码呈现出来;我们在做采集时,需要采集的是未压缩的文件,所以在http请求头上不要包含Accept-Encoding的键;

Nginx的压缩

在http段添加如下配置

gzip on|off;  #是否开启gzip
gzip_buffers 32 4K| 16 8K #缓冲(压缩在内存中缓冲几块? 每块多大?)
gzip_comp_level [1-9] #推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源)
gzip_disable #正则匹配UA 什么样的Uri不进行gzip
gzip_min_length 200 # 开始压缩的最小长度(再小就不要压缩了,意义不在)
gzip_http_version 1.0|1.1 # 开始压缩的http协议版本(可以不设置,目前几乎全是1.1协议)
gzip_proxied          # 设置请求者代理服务器,该如何缓存内容
gzip_types text/plain  application/xml # 对哪些类型的文件用压缩 如txt,xml,html ,css
gzip_vary on|off  # 是否传输gzip压缩标志
Example
gzip on;
gzip_min_length  1k;
gzip_buffers     4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
gzip_vary on;
gzip_proxied   expired no-cache no-store private auth;
gzip_disable   "MSIE [1-6]\.";
 

注意:

  1. 图片/mp3这样的二进制文件,不必压缩,因为压缩率比较小, 比如100->80字节,而且压缩也是耗费CPU资源的.
  2. 比较小的文件不必压缩,意义不存在.

expire浏览器缓存设置

概述

这里的缓存控制主要是针对图片,css,js等变化周期较短的静态文件;以图片为例,当我们第一次访问这张图片时,服务器返回的是200,同时在响应头返回了两个键,Etag:即该文件的‘指纹‘(唯一标识)以及Last-Modified:‘文件的修改时间‘;此时浏览器,以及其他的缓存服务器就会把这张图片给缓存起来;再次请求这张图片时,请求头增加了两个键值,If-Modified-Since:上次发生改变的时间;If-None-Match:上次文件本身的Etag值,服务器根据这两个键值判断其Etag和Last-Modified,如果都没发生改变就不返回这张图片,只返回一个304的状态码,服务器接收到这个304的状态码就会自己去从缓存里面找这个被缓存的图片;
这样就减少了服务器的带宽压力以及提升了网站访问速度;

配置

在location段以及if段可以设置

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
    expires      30d;
}

location ~ .*\.(js|css)?$
{
    expires      12h;
}

格式

expires 30s;
expires 30m;
expires 2h;
expires 30d;

注意:服务器的日期要准确,如果服务器的日期落后于实际日期,可能导致缓存失效

原文地址: http://www.cnblogs.com/nixi8/p/4904519.html

时间: 2024-08-02 02:49:04

nginx优化--gzip压缩与expire浏览器缓存的相关文章

Nginx 开启Gzip压缩的方法(非常的详解)

gzip是GNUzip的缩写了,它的主要作用就是用来减轻服务器的带宽问题了,如一个100KB的文件如果开启gzip之后可以变成20KB左右哦,是不是很有吸引力呀,下面一起来看看吧. 查看ngix编译参考,是否启用了gzip模块,运行命令:  代码如下 复制代码 /path/to/binary/nginx -V (我的nginx在PATH目录里,故命令中可以省略nginx所在的目录),写为nginx -t 即可,下文从略写注意其中是否 --with-http_gzip_static_module,

nginx的gzip压缩

随着nginx的发展,越来越多的网站使用nginx,因此nginx的优化变得越来越重要,今天我们来看看nginx的gzip压缩到底是怎么压缩的呢? gzip(GNU-ZIP)是一种压缩技术.经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会块得多.gzip的压缩页面需要浏览器和服务器双方都支持,实际上就是服务器端压缩,传到浏览器后浏览器解压并解析.浏览器那里不需要我们担心,因为目前的巨大多数浏览器都支持解析gzip过的页面.Nginx的压缩输出有一组gzip压

Nginx 配置 gzip 压缩

随着nginx的发展,越来越多的站点使用nginx,因此nginx的优化变得越来越重要,今天我们来看看nginx的gzip压缩究竟是怎么压缩的呢? gzip(GNU-ZIP)是一种压缩技术.经过gzip压缩后页面大小能够变为原来的30%甚至更小,这样.用户浏览页面的时候速度会块得多.gzip的压缩页面须要浏览器和server两方都支持.实际上就是server端压缩.传到浏览器后浏览器解压并解析. 浏览器那里不须要我们操心,由于眼下的巨大多数浏览器都支持解析gzip过的页面. Nginx的压缩输出

开启Nginx的gzip压缩功能详解

默认情况下,Nginx的gzip压缩是关闭的, gzip压缩功能就是可以让你节省不少带宽,但是会增加服务器CPU的开销哦,Nginx默认只对text/html进行压缩 ,如果要对html之外的内容进行压缩传输,我们需要手动来调. 开启gzip的指令如下:  代码如下 复制代码 gzip on;gzip_http_version 1.0;gzip_disable "MSIE [1-6].";gzip_types text/plain application/x-javascript te

Nginx 笔记与总结(13)Nginx 的 gzip 压缩

使用 FireFox(40.0)访问博客园(http://www.cnblogs.com/),观察 http 头信息 请求头信息: Accept-Encoding gzip, deflate 表示浏览器接受的压缩方式有 gzip 和 deflate 响应头信息: Content-Encoding gzip 表示服务器返回内容的压缩方式是 gzip 注意:图片/mp3 这样的二进制文件不必压缩,因为压缩比较小(而且压缩需要消耗 CPU 资源) 在 nginx 下使用 gzip nginx gzip

Nginx基于gzip压缩配置参数(Ngx_http_gzip_module)

Ngx_http_gzip_module(压缩模块):基于gzip方式对响应报文作压缩: 官方文档:http://nginx.org/en/docs/http/ngx_http_gzip_module.html 官方定义:The ngx_http_gzip_module module is a filter that compresses responses using the "gzip" method. This often helps to reduce the size of

在windows、linux中开启nginx的Gzip压缩大大提高页面、图片加载速度

为了降低tomcat服务的压力,把页面上的图片采用windows版的nginx进行加载,由于有些图片比较大,加载特别的慢,所以在nginx中打开了gzip的压缩功能.加载图片的速度快了很多. 通过站长工具中的"网页GZIP压缩检测"工具检测图片的压缩率达到了69.53%,如下图: 下面介绍nginx.conf文件是怎么配置的: 1.打开nginx.conf配置文件: 2.找到#gzip on这句,如下图: 3.在把#gzip on 改成下面代码: #开启Gzip gzip on; #不

nginx开启gzip压缩后导致apk包下载不能正常安装

最后更新时间:2019/4/27 nginx一般都会开启gzip压缩,以提升传输性能. 配置如下: gzip on; gzip_comp_level 2; gzip_min_length 1k; gzip_types text/plain application/x-javascript text/xml text/css application/xml application/vnd.android.package-archive; server_tokens off; 但如果apk文件开启了

性能优化-Gzip压缩

总结一下Gzip压缩.可以使用地方: 1. Servlet容器, 如Tomcat, jetty等;    具体的配置方法:http://bhdweb.iteye.com/blog/1676768 2. 反向代理服务器, 也可以使用Gzip压缩. 像nginx; 而且nginx自带Gzip压缩,只要开启配置一下就可以;  具体的配置方法:http://www.jb51.net/article/48995.htm PS: 1. 之前都是配置jetty, 后来jettyGzip压缩有问题,才想找其他的