使用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 相关文章推荐
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
Mar 09 Servers
nginx基于域名,端口,不同IP的虚拟主机设置的实现
Mar 31 Servers
Nginx服务器如何设置url链接
Mar 31 Servers
详解Nginx 工作原理
Mar 31 Servers
小程序后台PHP版本部署运行 LNMP+WNMP
Apr 01 Servers
详解nginx.conf 中 root 目录设置问题
Apr 01 Servers
Nginx已编译的nginx-添加新模块
Apr 01 Servers
Nginx配置之实现多台服务器负载均衡
Aug 02 Servers
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
Apr 07 Servers
Windows Server 2012 修改远程默认端口3389的方法
Apr 28 Servers
nginx静态资源的服务器配置方法
Jul 07 Servers
ubuntu20.04虚拟机无法上网的问题及解决
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
谈谈PHP语法(2)
2006/10/09 PHP
CodeIgniter php mvc框架 中国网站
2008/05/26 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
2013/09/26 PHP
PHP之APC缓存详细介绍 apc模块安装
2014/01/13 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
用jquery设置按钮的disabled属性的实现代码
2010/11/28 Javascript
深入理解Javascript闭包 新手版
2010/12/28 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
Cookies 和 Session的详解及区别
2017/04/21 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
Vue.js实现可配置的登录表单代码详解
2018/03/29 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
python检测lvs real server状态
2014/01/22 Python
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
Python的迭代器和生成器使用实例
2015/01/14 Python
分享一个常用的Python模拟登陆类
2015/03/29 Python
python嵌套函数使用外部函数变量的方法(Python2和Python3)
2016/01/31 Python
python实现求最长回文子串长度
2018/01/22 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
python 读取修改pcap包的例子
2019/07/23 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
python opencv肤色检测的实现示例
2020/12/21 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
教师党性分析材料
2014/02/04 职场文书
酒店前台辞职书
2015/02/26 职场文书
银行保安拾金不昧表扬稿
2015/05/05 职场文书
借款民事起诉状范文
2015/05/19 职场文书
浅谈MySql整型索引和字符串索引失效或隐式转换问题
2021/11/20 MySQL
教你nginx跳转配置的四种方式
2022/07/07 Servers
win10搭建配置ftp服务器的方法
2022/08/05 Servers