使用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服务器添加Systemd自定义服务过程解析
Mar 31 Servers
nginx location中多个if里面proxy_pass的方法
Mar 31 Servers
Nginx设置日志打印post请求参数的方法
Mar 31 Servers
Nginx代理同域名前后端分离项目的完整步骤
Mar 31 Servers
Nginx缓存设置案例详解
Sep 15 Servers
nginx常用配置conf的示例代码详解
Mar 21 Servers
nginx 配置缓存
May 11 Servers
Nginx利用Logrotate实现日志分割
May 20 Servers
netty 实现tomcat的示例代码
Jun 05 Servers
Zabbix对Kafka topic积压数据监控的问题(bug优化)
Jul 07 Servers
Nginx报404错误的详细解决方法
Jul 23 Servers
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
Aug 05 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 中执行系统外部命令
2006/10/09 PHP
PHP setTime 设置当前时间的代码
2012/08/27 PHP
PHP获取文件后缀名的三个函数
2012/10/15 PHP
php Session存储到Redis的方法
2013/11/04 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
2020/11/10 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
一个原生的用户等级的进度条
2010/07/03 Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
如何在 JavaScript 中更好地利用数组
2018/09/27 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
webpack是如何实现模块化加载的方法
2019/11/06 Javascript
Vue 中 filter 与 computed 的区别与用法解析
2019/11/21 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
2020/09/11 Javascript
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
Python编程实现从字典中提取子集的方法分析
2018/02/09 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
python自动发邮件总结及实例说明【推荐】
2019/05/31 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
2020/10/28 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
绘儿乐产品官方在线商店:Crayola.com
2019/09/07 全球购物
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
周鸿祎:教你写创业计划书
2013/12/30 职场文书
2014新年元旦活动策划方案
2014/02/18 职场文书
低碳生活倡议书
2014/04/14 职场文书
如何利用pygame实现打飞机小游戏
2021/05/30 Python
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记