nginx 图片文件压缩配置方法

查看ngix编译参考,是否启用了gzip模块,运行命令:

 代码如下 复制代码
/path/to/binary/nginx -V

(我的nginx在PATH目录里,故命令中可以省略nginx所在的目录),写为nginx -t 即可,下文从略写
注意其中是否 --with-http_gzip_static_module,如果没有,那就自己编译一次吧,下面是我的配置参数,供参考。最后的--add-module=../nginx-lib/nginx-upload-progress-module-v0.9.0/是nginx上传进度模块,nginx第三方模块,源码放置在../nginx-lib/nginx-upload-progress-module-v0.9.0目录,如果你没有下载过该模块,去掉它就可以了。

 代码如下 复制代码

nginx version: nginx/1.2.0
configure arguments: --prefix=/usr/local/nginx --sbin-path=/usr/local/sbin/nginx --conf-path=/usr/local/conf/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --with-http_stub_status_module --with-http_gzip_static_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_random_index_module --with-cpu-opt=pentium4 --add-module=../nginx-lib/nginx-upload-progress-module-v0.9.0/

修改nginx配置文件,nginx配置文件目录参看nginx配置参数里的--conf-path

nginx要修改两处,在虚拟主机配置段中添加:

 代码如下 复制代码

location ~* ^.+.gzjs$ {
add_header Content-Encoding gzip;
gzip off;
}

另外再修改nginx的mime文件,在application/x-javascript js;中添加gzjs

 代码如下 复制代码

application/x-javascript js gzjs;

我的配置代码

 代码如下 复制代码

gzip on;
gzip_min_length  1k;
gzip_buffers     8 32k;
gzip_http_version 1.0;
gzip_comp_level 5;
gzip_types       text/plain application/x-javascript text/javascript text/css application/xml;
gzip_vary on;

注解

1.开启Gzip

2.临界值小于1k 的文件不压缩,0为全压缩。
3.buffer大小
4.用于识别http协议的版本,早期的浏览器不支持gzip压缩,用户会看到乱码,所以为了支持前期版本加了此选项,目前此项基本可以忽略
5.压缩级别,1-9,数字越大压缩率越高越费CPU。
6.设置需要压缩的MIME类型,非设置值不进行压缩。JavaScript 两种写法都添加了,网络图片本身都是压缩格式了就不再压缩了。
7.加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持。因此,为避免浪费不支持的也压缩,需要根据客户端的HTTP头来判断,是否需要压缩。

测试

 代码如下 复制代码

curl -I http://www.111cn.net/ -H Accept-Encoding:gzip,defalte

下在补充

#nginx开启gzip压缩,放在location内

 代码如下 复制代码

gzip on;
gzip_min_length 1000;
gzip_buffers 4 8k;
gzip_http_version 1.1;
gzip_types text/text text/html text/plain text/xml
 text/css application/x-javascript application/javascript;

环境:Debian 6

1、Vim打开Nginx配置文件

 代码如下 复制代码

vim /usr/local/nginx/conf/nginx.conf

2、找到如下一段,进行修改

 代码如下 复制代码

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].";

用curl测试Gzip是否成功开启

curl -I -H "Accept-Encoding: gzip, deflate" "/blog/"

HTTP/1.1 200 OK
Server: nginx/1.0.15
Date: Sun, 26 Aug 2012 18:13:09 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.2.17p1
X-Pingback: /blog/xmlrpc.php
Content-Encoding: gzip

页面成功压缩

curl -I -H "Accept-Encoding: gzip, deflate" "/blog/wp-content/plugins/photonic/include/css/photonic.css"

HTTP/1.1 200 OK
Server: nginx/1.0.15
Date: Sun, 26 Aug 2012 18:21:25 GMT
Content-Type: text/css
Last-Modified: Sun, 26 Aug 2012 15:17:07 GMT
Connection: keep-alive
Expires: Mon, 27 Aug 2012 06:21:25 GMT
Cache-Control: max-age=43200
Content-Encoding: gzip

css文件成功压缩

curl -I -H "Accept-Encoding: gzip, deflate" "/blog/wp-includes/js/jquery/jquery.js"

HTTP/1.1 200 OK
Server: nginx/1.0.15
Date: Sun, 26 Aug 2012 18:21:38 GMT
Content-Type: application/x-javascript
Last-Modified: Thu, 12 Jul 2012 17:42:45 GMT
Connection: keep-alive
Expires: Mon, 27 Aug 2012 06:21:38 GMT
Cache-Control: max-age=43200
Content-Encoding: gzip

js文件成功压缩

curl -I -H "Accept-Encoding: gzip, deflate" "/blog/wp-content/uploads/2012/08/2012-08-23_203542.png"

HTTP/1.1 200 OK
Server: nginx/1.0.15
Date: Sun, 26 Aug 2012 18:22:45 GMT
Content-Type: image/png
Last-Modified: Thu, 23 Aug 2012 13:50:53 GMT
Connection: keep-alive
Expires: Tue, 25 Sep 2012 18:22:45 GMT
Cache-Control: max-age=2592000
Content-Encoding: gzip

图片成功压缩

curl -I -H "Accept-Encoding: gzip, deflate" "/blog/wp-content/plugins/wp-multicollinks/wp-multicollinks.css"

HTTP/1.1 200 OK
Server: nginx/1.0.15
Date: Sun, 26 Aug 2012 18:23:27 GMT
Content-Type: text/css
Content-Length: 180
Last-Modified: Sat, 02 May 2009 08:46:15 GMT
Connection: keep-alive
Expires: Mon, 27 Aug 2012 06:23:27 GMT
Cache-Control: max-age=43200
Accept-Ranges: bytes

时间: 2024-10-04 04:28:27

nginx 图片文件压缩配置方法的相关文章

Nginx下ThinkPHP5的配置方法详解

本文主要给大家介绍了关于Nginx下ThinkPHP5的配置方法,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍: url里public目录的隐藏 出于安全的考虑,TP5的入口文件改成放在public下了,因为这样的话能防止被恶意用户访问到"/thinkphp/"."/vendor/"等等这些目录下的文件.所以当你以之前的习惯将网站documentroot配置为项目根目录的时候就会需要在url后面加上/public/来访问.当然可能也会有童鞋把入口文件放

MySQL性能调整之my.cnf文件的配置方法

MySQL性能调整之my.cnf文件的配置方法: [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip-locking set-variable = key_buffer=16M set-variable = max_allowed_packet=1M set-variable = thread_stack=64K set-variable = record_buffer=1M set-variable = t

PPT插入的图片能响应源图片文件的修改方法

  PPT插入的图片能响应源图片文件的修改方法?PowerPoint插入的图片能够响应源图片文件的修改,即修改源文件时插入的图片可以自动更新,那就得让它与源文件建立链接.感兴趣的朋友到下文了解一下吧. 方法/步骤 打开PowerPoint软件后,"插入"-"图片",跳出对话框 选中要插入的图片,单击对话框底部的"插入"按钮右侧的倒三角箭头,弹出下拉列表 在其中选择"链接到文件" 以上就是PPT插入的图片能响应源图片文件的修改方

php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)_php技巧

本文实例讲述了php使用pclzip类实现文件压缩的方法.分享给大家供大家参考,具体如下: 使用PclZIp(zip格式)压缩,首先需要下载它的包文件(可点击此处本站下载).PclZip功能还是蛮强大的,它可以进行压缩和解压,以及一些添加和删除的类的方法等等.当然了这些内容我们都可以在网上查找的到,没必要都得记住.我们只要在需要使用的时候自己可以很快的在网上找到使用方法就可以了.首先我们需要的就是要将下载的库文件进行引入,如 <?php include('pclzip/pclzip.lib.ph

Nginx跨域使用字体文件的配置方法_nginx

今天在使用子域名访问根域名的CSS时,发现字体无法显示,在确保CSS和Font字体的路径加载无问题后,基本确定是因为跨域的问题. 通过Nginx模块HttpHeadersModule来添加Access-Control-Allow-Origin允许的地址. 解决方法 在Nginx的conf目录下修改nginx.conf或者vhost下对应的domain conf,添加以下代码: 复制代码 代码如下: location ~* \.(eot|ttf|woff)$ {add_header Access-

Apache图片防盗链配置方法介绍(可用.htaccess)

图片防盗链配置规则很简单 RewriteRule .*.(gif|jpg|swf|png) 说明一下其中的R.NC 和 L R 就是转向的意思 NC 指的是不区分大小写 L 的作用是指明本次转向到此结束,后续的转向不受先前判断语句的影响 5.防止 盗链的文件类型 上例中是 gif.jpg.png,而根据须要 ,可修改 或添加其他文件类型,如rar.mov等,不同文件扩展名间运用 ""分割. 使用 rewrite 技术实现 Apache 防盗链 Apache 防盗链的第一种实现方法,可以

Nginx图片防盗链配置实例_nginx

做运维的朋友经常会有一些烦恼,比如网站总是被人抄袭,比如网站总是被人引用上面的图片,虽然一张图两张图,并不耗费很多流量,但一旦引用的人多了,这个还是比较废流量的. 防盗链就是禁止其他网站引用自己网站资源而做的一系列设置,优点就不需要说了,绝多数就是防止资源浪费,特别是有宽带.流量限制的空间如果不做一些 限制可能就光引用自己网站图片.视频等等资源可能会消耗很大一部分流量.本文就简单的说一下在nginx服务器上如何做防盗链设置. nginx防盗链代码 第1步:下载nginx网站配置文件. 有些网友可

inotify-tools+rsync实时同步文件的配置方法_Linux

服务器A:论坛的主服务器,运行DZ X2论坛程序;服务器B:论坛从服务器,需要把X2的图片附件和MySQL数据实时从A主服务器实时同步到B服务器.MySQL同步设置会在下一编中说到.以下是用于实时同步两台服务器的图片. 因为一般的RSYNC需要CRON来定期运行SH脚本来实现同步,这样会带来一些问题.比如用户从主服务器上传上一个图片,需要最少一分钟才能从从服务器显示出来.自从Linux 2.6内核后,支持了inotify机制,当某些文件或文件夹有改变时,发出相应的事件,这样,第三方程序只要订阅这

linux下Nginx+Tomcat负载均衡配置方法_nginx

Nginx+tomcat是目前主流的java web架构,如何让nginx+tomcat同时工作呢,也可以说如何使用nginx来反向代理tomcat后端均衡呢?直接安装配置如下: 1.JAVA JDK安装: #下载相应的jdk软件包,然后解压安装,我这里包名称为:jdk-7u25-linux-x64.tar.gz tar -xzf jdk-7u25-linux-x64.tar.gz ;mkdir -p /usr/java/ ;mv jdk1.7.0_25/ /usr/java/ 下. #然后配置