使用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对http请求处理的各个阶段详析
Mar 31 Servers
fastdfs+nginx集群搭建的实现
Mar 31 Servers
zabbix自定义监控nginx状态实现过程
Nov 01 Servers
nginx配置之并发频次限制
Apr 18 Servers
Windows Server 2016 配置 IIS 的详细步骤
Apr 28 Servers
搭建Yolov5服务器
Apr 30 Servers
centos7安装mysql5.7经验记录
May 02 Servers
ubuntu下常用apt命令介绍
Jun 05 Servers
windows系统安装配置nginx环境
Jun 28 Servers
设置IIS Express并发数
Jul 07 Servers
centos环境下nginx高可用集群的搭建指南
Jul 23 Servers
Tomcat安装使用及部署Web项目的3种方法汇总
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长字符串定义方法
2012/07/12 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
js检测客户端不是firefox则提示下载
2007/04/07 Javascript
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
js png图片(有含有透明)在IE6中为什么不透明了
2010/02/07 Javascript
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
浅谈javascript中的三种弹窗
2016/10/21 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
200行HTML+JavaScript实现年会抽奖程序
2019/01/22 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
python回调函数中使用多线程的方法
2017/12/25 Python
Python3 queue队列模块详细介绍
2018/01/05 Python
Django 视图层(view)的使用
2018/11/09 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
python程序变成软件的实操方法
2019/06/24 Python
python爬虫 线程池创建并获取文件代码实例
2019/09/28 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
css3 矩阵的使用详解
2018/03/20 HTML / CSS
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
SportsDirect.com新加坡:英国第一体育零售商
2019/03/30 全球购物
override和overload的区别
2016/03/09 面试题
互联网电子商务专业毕业生求职信
2014/03/18 职场文书
落实八项规定专题民主生活会对照检查材料
2014/09/15 职场文书
心灵捕手观后感
2015/06/02 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript