使用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下配置Https证书详细过程
Apr 01 Servers
苹果M1芯片安装nginx 并且部署vue项目步骤详解
Nov 20 Servers
Apache Hudi集成Spark SQL操作hide表
Mar 31 Servers
Apache Hudi数据布局黑科技降低一半查询时间
Mar 31 Servers
阿里云日志过滤器配置日志服务
Apr 09 Servers
Windows和Linux上部署Golang并运行程序
Apr 22 Servers
Vscode中SSH插件如何远程连接Linux
May 02 Servers
聊聊配置 Nginx 访问与错误日志的问题
May 25 Servers
服务器SVN搭建图文安装过程
Jun 21 Servers
Nginx文件已经存在全局反向代理问题排查记录
Jul 15 Servers
Apache自带的ab压力测试工具的实现
Jul 23 Servers
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
Aug 14 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
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
2007/04/12 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
2013/12/09 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP详解
2015/03/05 Javascript
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
js判断文本框输入的内容是否为数字
2015/12/23 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
基于react框架使用的一些细节要点的思考
2017/05/31 Javascript
BACKBONE.JS 简单入门范例
2017/10/17 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
详解React中合并单元格的正确写法
2019/01/08 Javascript
微信小程序 网络通信实现详解
2019/07/23 Javascript
vue实现信息管理系统
2020/05/30 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[01:09:50]VP vs Pain 2018国际邀请赛小组赛BO2 第二场
2018/08/20 DOTA
Python 爬虫之超链接 url中含有中文出错及解决办法
2017/08/03 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
2020/06/18 Python
分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)
2012/12/28 HTML / CSS
Lookfantastic葡萄牙官方网站:欧洲第一大化妆品零售商
2018/03/17 全球购物
英国DIY和家居装饰领域的主要品牌:Wickes
2019/11/26 全球购物
高中三年学习生活的自我评价
2013/10/10 职场文书
教育专业毕业生推荐信
2014/07/10 职场文书
争先创优个人总结
2015/03/04 职场文书
地心历险记观后感
2015/06/15 职场文书
2019年朋友圈经典励志语录50条
2019/07/05 职场文书
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python
向Spring IOC 容器动态注册bean实现方式
2022/07/15 Java/Android