Nginx图片处理原理
这里需要用到 nginx的 http_image_filter_module 模块,这个模块可以很方便的实现图片缩放功能,只是默认的情况下并不会安装,需要自己编译安装才能行。编译的时候./configure 增加 –with-http_image_filter_module 编译安装即可
Nginx图片处理的优缺点
优点
- 操作简单。通过简单配置,省去了后端裁剪程序的复杂性。
- 实时裁剪。可以实时访问在线裁剪图片。
- 灵活性强。后端程序裁剪图片时需要知道裁剪图片的尺寸和质量,使用nginx裁剪可以实时裁剪任意尺寸的图片。
- 不占用硬盘空间。
缺点
-
消耗CPU和内存,访问量大的时候就会给服务器带来很大的负担。(可以通过使用Nginx缓存和缓存服务器来解决)
-
功能不是很强大,支持的处理图片类型只包括JPEG, GIF, PNG, or WebP
如果是用nginx做缩略图功能,看这篇文章就够了
一、nginx下载以及http_image_filter_module模块配置
说明:配置http_image_filter_module模块需要下载动态链接库文件 libgd.dll。
已经配置好了,需要的可下载
https://download.csdn.net/download/qq_36749924/87853312
libgd.dll环境变量配置
二、nginx.conf核心配置
location / {
proxy_pass http://192.168.0.6:8091;
}
//这个是核心配置
//图片后面加?reduce=true是缩略图、不加则是原图
//匹配根路径 resources
location ~ /resources/ {
set $width -;
# 图片默认高度
set $height -;
if ( $arg_reduce != "" ) {
set $width 350;
set $height 350;
}
image_filter test;
image_filter resize $width $height;
image_filter_buffer 30M;
image_filter_jpeg_quality 95;
proxy_pass http://192.168.0.6:8091;
}
说明:该配置的意思是,可以通过在图片后面追加参数决定是否弄成缩略图,缩略图的宽高为350 350。注意:这个是比例,不一定是350*350px
三、效果展示
1、缩略图访问
说明:主要是在图片后面加个参数?reduce=true。如果不加就是原图,这样前端的小伙伴想要原图或者缩略图自己玩就可以了
http://192.168.0.6/resources/3_product/kEVk2fu1dedUnInyXOIu03bYGnQ5xP7W7zTwf3jR.jpeg?reduce=true
2、原图访问
http://192.168.0.6/resources/3_product/kEVk2fu1dedUnInyXOIu03bYGnQ5xP7W7zTwf3jR.jpeg
为什么写这篇文章?
答:网上关于nginx在windows上实现缩略图的文章太少了,而且不完整