使用nginx动态转换图片大小生成缩略图


Posted in Servers onMarch 31, 2021

Nginx的ngx_http_image_filter_module 模块(nginx版本为0.7.54+) 可用来动态转换JPEG, GIF, PNG, 和WebP格式的图片大小。

该模块默认没有构建,需要通过 --with-http_image_filter_module 配置参数启用。

如果图片访问量不大,可以使用该模块。

该模块使用了libgd库。 推荐使用该库的最新版本。

以下为在已经安装了nginx的情况下添加该模块的步骤。

1 安装依赖

yum -y install gd-devel
yum -y install libxslt-devel
yum -y install perl-devel perl-ExtUtils-Embed

2 查看原nginx参数

​ nginx -V

输出结果如下:

​ nginx version: nginx/1.12.2
​ configure arguments:

查看是否有--with-http_image_filter_module,如果有则说明已经安装过,否则继续安装。

3 编译

重新编译时需要下载和原来相同版本的nginx源码,解压。

添加--with-http_image_filter_module=dynamic及原来的参数(不需要执行make install命令重新安装)

./configure --with-http_image_filter_module=dynamic
make

4 备份原nginx

cp -r /usr/local/nginx /usr/local/nginxbak

5 覆盖nginx

cp objs/nginx /usr/local/nginx/sbin/
mkdir /usr/local/nginx/module
cp objs/ngx_http_image_filter_module.so /usr/local/nginx/module/ngx_http_image_filter_module.so

6 修改配置文件

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

load_module /usr/local/nginx/module/ngx_http_image_filter_module.so;
location ~* /images/(.+)_(\d+)x(\d+)\.(jpg|jpeg|gif|png)$ {
        set $w $2;
        set $h $3;
        image_filter resize $w $h;
        image_filter_buffer 30M; #设置图片缓冲区的最大大小,大小超过设定值,服务器将返回错误415
        image_filter_interlace on;
        image_filter_jpeg_quality 80;
        try_files /$1.$4 /notfound.jpg;
        expires 1d;
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Credentials' 'true';
        alias /home/publisherupload/ ; #root 能够让访问 /images/ 路径时,访问到 /User/XX/Desktop/images,如果将 root 替换为 alias,则访问的是 /User/XX/Desktop/;其中 /User/XX/Desktop/ 是本机中的绝对路径。
    }

location /images {
  alias /home/publisherupload/ ; #root 能够让访问 /images/ 路径时,访问到 /User/XX/Desktop/images,如果将 root 替换为 alias,则访问的是 /User/XX/Desktop/;其中 /User/XX/Desktop/ 是本机中的绝对路径。
  autoindex on; #打开目录浏览功能
}

7 重载nginx配置

/usr/local/nginx/sbin/nginx -s

8 测试

最终的图片访问地址为在原图片地址后面加入_宽度X高度参数

http://110.87.103.58:12345/images/2021-01/202101250944272_500x400.png

参考

https://cloud.tencent.com/developer/article/1644466

到此这篇关于使用nginx动态转换图片大小生成缩略图的文章就介绍到这了,更多相关nginx动态转换图片大小内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

Servers 相关文章推荐
Nginx开启Brotli压缩算法实现过程详解
Mar 31 Servers
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
Apr 04 Servers
Nginx配置Https安全认证的实现
May 26 Servers
Apache POI的基本使用详解
Nov 07 Servers
openstack云计算keystone组件工作介绍
Apr 20 Servers
Nginx配置之禁止指定IP访问
May 02 Servers
netty 实现tomcat的示例代码
Jun 05 Servers
Windows Server 修改远程桌面端口的实现
Jun 25 Servers
Windows10安装Apache2.4的方法步骤
Jun 25 Servers
windows server2008 开启端口的实现方法
Jun 25 Servers
win7配置本地ftp服务器的图文教程
Aug 05 Servers
WIN10使用IIS部署ftp服务器详细教程
Aug 05 Servers
Nginx反向代理多个服务器的实现方法
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
为什么 Nginx 比 Apache 更牛逼
Mar 31 #Servers
Nginx的rewrite模块详解
Mar 31 #Servers
nginx常用命令放入shell脚本详解
Mar 31 #Servers
详解如何修改nginx的默认端口
nginx前后端同域名配置的方法实现
Mar 31 #Servers
You might like
phpBB BBcode处理的漏洞
2006/10/09 PHP
php入门学习知识点三 PHP上传
2011/07/14 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
迁移PHP版本到PHP7
2015/02/06 PHP
PHP执行linux命令常用函数汇总
2016/02/02 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
2019/01/15 PHP
又一个图片自动缩小的JS代码
2007/03/10 Javascript
filemanage功能中用到的lib.js
2007/04/08 Javascript
利用ASP发送和接收XML数据的处理方法与代码
2007/11/13 Javascript
javascript计算用户打开网页的停留时间
2014/01/09 Javascript
给js文件传参数(详解)
2014/07/13 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
2016/10/24 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
浅谈Vue数据绑定的原理
2018/01/08 Javascript
分享5个顶级的JavaScript Ajax组件库
2018/09/16 Javascript
浅谈vue项目用到的mock数据接口的两种方式
2019/10/09 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
Vue实现一种简单的无限循环滚动动画的示例
2021/01/10 Vue.js
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
对matplotlib改变colorbar位置和方向的方法详解
2018/12/13 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
通俗讲解python 装饰器
2020/09/07 Python
python 逆向爬虫正确调用 JAR 加密逻辑
2021/01/12 Python
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
《雷鸣电闪波尔卡》教学反思
2014/02/23 职场文书
远程培训的心得体会
2014/09/01 职场文书
村干部群众路线教育活动对照检查材料
2014/10/01 职场文书
就业协议书范本
2014/10/08 职场文书
Go语言基础map用法及示例详解
2021/11/17 Golang