Nginx实战案例—图片的过滤压缩
1. 为什么要图片过滤压缩
在实际的企业当中,nginx服务器上的资源要尽可能的占用的空间少一点
实际上信息量大的网页和高清图片占用存储空间是非常大的,这样不利于服务器性能的优化
因此我们要在服务器上面将网页和图片进行压缩,让客户端去下载就可以了
不管一个系统或网站的大与小,都存在相应的图片处理、生成缩略图、为图片加水印等等,如果涉及到APP端,这个图片的处理需求变得更加重要了,因为在目前来看,客户端的屏幕大小不一,会导致以下问题:
- 图片过大导致APP加载图片速度慢;
- 消耗用户过多流量。
2. 实现图片的过滤压缩
实验前提:因为nginx是模块化的,实验前必须编译好这个模块:
–with-http_image_filter_module=dynamic
如果编译出错,可能是因为没有gd-devel包,执行下面命令:
yum list gd #看到系统gd版本是 2.0.35-26,所以自己下载的gd-devel也得是这个版本
yum install -y gd-devel-2.0.35-26.el7.x86_64.rpm #自己到网上找到和系统gd版本一样的gd-devel包
编辑nginx服务的配置文件:
vim /usr/local/nginx/conf/nginx.conf #写入第一行内容和55行
1 load_module modules/ngx_http_image_filter_module.so;
52 location /download {
53 #limit_conn addr 1; #只能一个并发,多了会报错
54 #limit_rate 50k; #限制带宽,每秒最多50k
55 image_filter resize 150 100; #重新调整图片尺寸(像素)
56 }
nginx -t #语法检测
nginx -s reload #在不暂停服务的情况下重新加载
查看图片本来的大小:
cd /usr/local/nginx/html/download/
ls
du -sh #为32k
测试:
网页搜索172.25.1.1/download/huge.jpg—>按f12—>选择network—>按f5刷新—>查看到图片被压缩到2.50k