Fork me on GitHub

nginx 配置gzip网页图压缩(1)

gizp配置:

gzip 相关配置可放在 http{} 或 server{} 或 location{} 层级,若不同层级有重复设置优先级为 location{} > server{} > http{}

gzip on;
gzip_min_length 1k; 
gzip_buffers 4 16k;
#gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";

注释:

第1行:开启Gzip

第2行:不压缩临界值,大于1K的才压缩,一般不用改

第3行:压缩结果数据流存储所用空间,下面表示以16k为单位,按照原始数据大小以16k为单位的4倍申请内存。默认值是申请跟原始数据相同大小的内存空间去存储gzip压缩结果。

第4行:采用http协议版本 默认是1.1 ,对于1.0的请求不会压缩,如果设置成1.0,表示http1.0以上 的版本都会压缩。(如果使用了proxy_pass 进行反向代理,那么nginx和后端的 upstream server之间默认是用 HTTP/1.0协议通信的。)

第5行:压缩级别,1-10,数字越大压缩的越好,时间也越长,看心情随便改吧

第6行:进行压缩的文件类型,缺啥补啥就行了,JavaScript有两种写法,最好都写上吧,总有人抱怨js文件没有压缩,其实多写一种格式就行了

第7行:代理缓存压缩和原始版本资源,避免客户端因Accept-Encoding不支持gzip而发生错误的现象(现在一般都采用gzip)

第8行:禁止IE6进行gzip压缩

nginx中的expires缓存(缓存在浏览器中 提高网站性能)

使用场景:对于网站的图片,尤其是新闻站, 图片一旦发布, 改动的可能是非常小的.我们希望 能否在用户访问一次后, 图片缓存在用户的浏览器端,且时间比较长的缓存.
列如:缓存一个小时

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ttf|woff|pdf|doc|docx|PNG|JPG|JPEG|ico)$
{	expires      30d;
}
location ~ .*\.(js|css)?$
{
	expires      12h;
}

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

nginx 禁止了.开头文件或目录访问,配置来设置允许.well-known能访问,配置如下:

Copy Highlighter-hljs
location ~ /.well-known {
	allow all;
}
posted @ 2022-09-10 14:32  v_nice  阅读(427)  评论(0)    收藏  举报
1