使用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网站服务如何配置防盗链(推荐)
Mar 31 Servers
nginx反向代理时如何保持长连接
Mar 31 Servers
Nginx解决403 forbidden的完整步骤
Apr 01 Servers
nginx配置文件使用环境变量的操作方法
Jun 02 Servers
Nginx反向代理配置的全过程记录
Jun 22 Servers
centos8安装nginx1.9.1的详细过程
Aug 02 Servers
nginx安装以及配置的详细过程记录
Sep 15 Servers
使用Nginx搭载rtmp直播服务器的方法
Oct 16 Servers
win server2012 r2服务器共享文件夹如何设置
Jun 21 Servers
Nginx如何配置根据路径转发详解
Jul 23 Servers
nginx配置指令之server_name的具体使用
Aug 14 Servers
keepalived + nginx 实现高可用方案
Dec 24 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
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
浅析php单例模式
2014/11/25 PHP
基于jquery的动态创建表格的插件
2011/04/05 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
2016/06/30 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
three.js中文文档学习之如何本地运行详解
2017/11/20 Javascript
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
vue组件name的作用小结
2018/05/23 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
js实现无缝轮播图插件封装
2020/07/31 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
Python实现比较两个列表(list)范围
2015/06/12 Python
Django实现自定义404,500页面教程
2017/03/26 Python
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
python模块和包的应用BASE_PATH使用解析
2019/12/14 Python
解决IDEA 的 plugins 搜不到任何的插件问题
2020/05/04 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
健身场所或家用健身设备:Life Fitness
2017/11/01 全球购物
泰国网上购物:Shopee泰国
2018/09/14 全球购物
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
高中毕业自我鉴定
2013/12/19 职场文书
鼓励运动员的广播稿
2014/02/08 职场文书
2014年秋季开学演讲稿
2014/05/24 职场文书
安全生产工作汇报
2014/10/28 职场文书
社区安全温馨提示语
2015/07/14 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
2019秋季运动会口号
2019/06/25 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
python保存大型 .mat 数据文件报错超出 IO 限制的操作
2021/05/10 Python