使用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 09 Servers
apache基于端口创建虚拟主机的示例
Apr 22 Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 Servers
Nginx设置HTTPS的方法步骤 443证书配置方法
Mar 21 Servers
CentOS安装Nginx并部署vue
Apr 12 Servers
KVM基础命令详解
Apr 30 Servers
apache ftpserver搭建ftp服务器
May 20 Servers
Linux安装Docker详细教程
Jul 07 Servers
搭建zabbix监控以及邮件报警的超级详细教学
Jul 15 Servers
Windows Server 2012 R2服务器安装与配置的完整步骤
Jul 15 Servers
Nginx报404错误的详细解决方法
Jul 23 Servers
VMware虚拟机安装 Windows Server 2022的详细图文教程
Sep 23 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导出带样式的Excel示例代码
2016/08/28 PHP
php实现微信支付之退款功能
2018/05/30 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
Firefox window.close()的使用注意事项
2009/04/11 Javascript
CCPry JS类库 代码
2009/10/30 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
用js判断是否为360浏览器的实现代码
2015/01/15 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
JS打开摄像头并截图上传示例
2017/02/18 Javascript
详解VueJS应用中管理用户权限
2018/02/02 Javascript
Bootstrap4如何定制自己的颜色和风格
2018/02/26 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
vue脚手架项目创建步骤详解
2021/03/02 Vue.js
Python简单计算文件MD5值的方法示例
2018/04/11 Python
使用python编写监听端
2018/04/12 Python
Python返回数组/List长度的实例
2018/06/23 Python
对python3 sort sorted 函数的应用详解
2019/06/27 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
python如何建立全零数组
2020/07/19 Python
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
别名指示符是什么
2012/10/08 面试题
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
初入社会应届生求职信
2013/11/18 职场文书
大专学生推荐信范文
2013/11/19 职场文书
少儿节目主持串词
2014/04/02 职场文书
承诺书模板大全
2015/05/04 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
vue实现无缝轮播效果(跑马灯)
2021/05/14 Vue.js
一些让Python代码简洁的实用技巧总结
2021/08/23 Python
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技