使用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 相关文章推荐
如何在centos上使用yum安装rabbitmq-server
Mar 31 Servers
Nginx工作原理和优化总结。
Apr 02 Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 Servers
nginx中封禁ip和允许内网ip访问的实现示例
Mar 17 Servers
Nginx工作模式及代理配置的使用细节
Mar 21 Servers
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
Apr 07 Servers
Windows Server 2019 配置远程控制以及管理方法
Apr 28 Servers
Ubuntu Server 安装Tomcat并配置systemctl
Apr 28 Servers
docker 制作mysql镜像并自动安装
May 20 Servers
win sever 2022如何占用操作主机角色
Jun 25 Servers
腾讯云服务器部署前后分离项目之前端部署
Jun 28 Servers
Nginx如何配置多个服务域名解析共用80端口详解
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与ASP
2006/10/09 PHP
最常用的8款PHP调试工具
2014/07/06 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
PHP使用curl制作简易百度搜索
2016/11/03 PHP
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
在ASP.NET中使用JavaScript脚本的方法
2013/11/12 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
JS控制按钮10秒钟后可用的方法
2015/12/22 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
基于JavaScript实现Tab选项卡切换效果
2016/11/24 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
详解javascript常用工具类的封装
2018/01/30 Javascript
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
小程序兼容安卓和IOS数据处理问题及坑
2018/09/18 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
利用python生成一个导出数据库的bat脚本文件的方法
2016/12/30 Python
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
Python中的单下划线和双下划线使用场景详解
2019/09/09 Python
Python collections模块的使用方法
2020/10/09 Python
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
Black Halo官方网站:购买连衣裙、礼服和连体裤
2018/06/13 全球购物
毕业生护理专业个人求职信范文
2014/01/04 职场文书
民事赔偿协议书
2014/11/02 职场文书
团组织推优材料
2014/12/29 职场文书
个人学习总结范文
2015/02/15 职场文书
七年级作文之英语老师
2019/10/28 职场文书
CentOS安装Nginx并部署vue
2022/04/12 Servers
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL