使用nginx实现自定义大小预览缩略图,http_image_filter模块的安装使用

news2024/11/24 12:27:13

使用nginx实现自定义大小预览缩略图,http_image_filter模块的安装使用

  • 注意事项
  • 服务器配置方法
      • 安装模块
      • 备份http_image_filter模块用以调用
      • 配置文件调整引入模块
      • 修改配置文件设置访问入口
      • 随后重启nginx服务
      • 访问请求测试

注意事项

  • 本预览图功能使用的是nginx的http_image_filter模块,可以自定义缓存大小解决占用服务器容量问题,建议配合fastDFS使用
  • http_image_filter不会改变图片原始比例
    例如原始图片尺寸为16:9,那么输入宽高值之后会以较小的一个参数展现预览图,比如原始图为1600*900,传递参数320*90会拿到160*90的预览图
  • http_image_filter无法做到等比例放大
    例如原始图为1920*1080,输入参数大于1920*1080后拿到的预览图也都是原图,无法拿到更大的
  • 应用场景
    一般使用于图片清晰度要求较高文件较大,服务器资源无法满足处理多种尺寸预览图,但应用场景需要适配不同性能机型以使用几种尺寸特定比例的预览图

服务器配置方法

安装模块

博主的nginx安装路径为/usr/local/nginx,安装包的路径为/usr/local/nginx-1.20.1.先cd到/usr/local/nginx路径下,执行下面命令查询原有nginx已安装的模块

./sbin/nginx -V

查询原有nginx已安装的模块
然后cd到/usr/local/nginx-1.20.1,在原有模块的基础下最后追加这一段,我截图里面已经有了是因为刚刚已经配置完了

--with-http_image_filter_module=dynamic
# 示例
./configure --prefix=/usr/local/nginx --pid-path=/usr/local/nginx/run --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-http_image_filter_module=dynamic

这个时候先别执行make,否则会报出缺少依赖的错,先安装依赖

yum install gd-devel

执行make,千万不要install。否则会覆盖

make

此时/usr/local/nginx-1.20.1下的objs目录中会出现ngx_http_image_filter_model.so文件
ngx_http_image_filter_model
接下来要做的是配置conf文件和重启ngxin,先将原有的启动文件备份。

cd /usr/local/nginx/sbin
mv nginx nginx.d
cd /usr/local/nginx-1.20.1/objs
cp nginx ../../nginx/sbin/

备份http_image_filter模块用以调用

mkdir /usr/local/nginx/modules
cp /usr/local/nginx-1.20.1/objs/ngx_http_image_filter_module.so /usr/local/nginx/modules

配置文件调整引入模块

vi /usr/local/nginx/conf/nginx.conf
load_module "modules/ngx_http_image_filter_module.so";

调整配置文件引入模块

修改配置文件设置访问入口

在原有的访问静态文件的location中加入下面代码,意为取请求地址的w参数和h参数为缩略图大小,缓存大小为100M

		image_filter resize  $arg_w $arg_h;
        image_filter_buffer  100M;

随后重启nginx服务

在这里插入图片描述
这三个都kill掉
然后到/usr/local/nginx下执行

./sbin/nginx

访问请求测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上就是配置使用http_image_filter模块的全过程,如有疑问欢迎留言私信

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/114816.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

哦,原来事务传播是这样

引言 ​ 在介绍正文之前,让我们先一起来看下这段代码: Transactionalpublic void createProduct(Long skuId, Integer number, Long operatorUcid) {// 插入商品信息recordProduct(skuId, number);// 插入商品操作记录日志recordProductOperateLogClass…

关于操作数组元素的实际应用

sort()升序、降序排序方法应用 sort()排序方式原理:当sort()传入函数中的第一个参数a位于第二个参数b之前,则返回一个负数,相等则返回0,a位于b之后则返回正数。 比如,当要做升序排序时,我们需要想到前面的…

【SpringMVC】常用注解

1.RequestParam 1.1 使用说明 作用: 把请求中指定名称的参数给控制器中的形参赋值 属性: ​ **value:**请求参数中的名称 ​ **required:**请求参数是否必须提供此参数。默认值:true,表示必须提供,如果…

Linux下tree命令C/C++实现(以树状格式列出目录的内容)

在UNIX/LINUX系统中,tree是一个递归目录列表程序,它生成文件的深度缩进列表。在没有参数的情况下,树将列出当前目录中的文件。当给定目录参数时,树依次列出在给定目录中找到的所有文件或目录。列出找到的所有文件和目录后&#xf…

机器学习从零到入门 逻辑回归详解

逻辑回归详解 从零开始 从理论到实践一、逻辑回归的理解1.1、字面含义1.2、引申1.2.1、阶跃函数的引入1.2.2、可导的阶跃函数 - Logistic函数1.2.3、Logistic回归1.2.4、回归系数的求解 - 极大似然估计二、sklearn的使用参考一、逻辑回归的理解 前面介绍了线性回归及其衍生回归…

目标检测之YOLOv4算法分析

基本原理 网络结构 CSPDarknet53 最后三个箭头指向输出即三种特征图 SPP 解决多尺度问题 对于同一个特征输出图,进行三种maxpool2d操作,然后将三种操作的输出进行叠加 PANet 融合上采样、下采样等特征,深度方向拼接 PANet由五个核心模…

Unity 3D工具栏与常用工具||Unity 3D 菜单栏与快捷键

Unity 3D 的工具栏( Toolbar )中,一共包含 13 种常用工具,如下所列。 一. 平移窗口工具:平移场景视图画面。 快捷键:鼠标中键 二. 位移工具:针对单个或两个轴向做位移。 快捷键:W…

stm32f407VET6 系统学习 day04 DHT11 温湿度传感器

1.温湿度的一次完整的数据包括: 一次完整的数据传输为40bit,高位先出。 数据格式: 8bit湿度整数数据 8bit湿度小数数据 8bi温度整数数据 8bit温度小数数据 8bit校验(校验和的值是前四个字节数据的和) 用户MCU发送一次开始信号后,DHT11从低功耗模式转…

灰色关联分析(系统分析+综合评价)

系统分析:探究系统中哪个自变量对系统的影响最大 灰色关联分析的基本思想是根据序列曲线几何形状的相似程度来判断其联系是否紧密。曲线越接近,相应序列之间的关联度就越大,反之就越小 应用一、进行系统分析(国内比赛合适&#xf…

idea创建spring项目

文章目录一、Maven 项目的创建1.1 创建一个空项目2.2 新建一个模块2.3 创建Maven模块2.4 添加resources目录2.5 选定maven版本二、添加spring2.1 添加依赖2.2 创建applicationContext文件2.3 添加bean一、Maven 项目的创建 1.1 创建一个空项目 新建一个空项目;随便…

十、Express 路由

路由是Express框架中最重要的功能之一,在Express中,路由指的是客户端的请求与服务器处理函数之间的映射关系,Express中的路由分别由请求的类型(GET/POST等)、请求的URL地址和处理函数三个部分组成的; APP级…

【C++】侯捷C++面向对象高级编程(下)

转换函数(conversion function) 可以把"这种"东西,转化为"别种"东西。 即Fraction ——> double class Fraction { public:Fraction(int num, int den 1) :m_numerator(num), m_denominator(den) {}operator double()const {return ((dou…

hashmap哈希map是什么?什么时候需要使用hashmap?C实现hashmap示例

背景 对于C程序员,尤其是嵌入式C程序员,hashmap使用的相对较少,所以会略显陌生,hashmap其实涉及到2个概念,分别是哈希(hash)、map。 哈希hash:是把任意长度输入通过蓝列算法变换成固定长度的输出&#xff…

CSS Flex 布局的 flex-direction 属性讲解

flex-direction 设置了主轴,从而定义了弹性项目放置在弹性容器中的方向。 Flexbox 是一种单向布局概念,可将弹性项目视为主要以水平行或垂直列布局。 .container {flex-direction: row | row-reverse | column | column-reverse; }几种支持的属性&#x…

devServer和VueCli | Webpack

文章目录devServer和VueCliwebpack-dev-servercontentBase模块热替换开启HMRhotOnly host配置port open compressproxyresolveextensions和alias配置如何区分开发环境devServer和VueCli webpack-dev-server contentBase 模块热替换 开启HMR hotOnly host配置 port open compres…

IMX6ULL学习笔记(15)——GPIO接口使用【官方SDK方式】

一、GPIO简介 i.MX6ULL 芯片的 GPIO 被分成 5 组,并且每组 GPIO 的数量不尽相同,例如 GPIO1 拥有 32 个引脚, GPIO2 拥有 22 个引脚, 其他 GPIO 分组的数量以及每个 GPIO 的功能请参考 《i.MX 6UltraLite Applications Processor Reference M…

有没有股票实时行情的同花顺l2接口?

对于个人投资者而言,一般看盘平台软件系统中,通过自定义公式接口,可以获取到股票实时行情的。例如同花顺l2接口系统会通过一些输入的公式就能查找指定的股票行情了,那么这个就相当于股票实时行情的API接口一样的道理,输…

加密解决HTTP协议带来的安全问题

HTTP协议默认是采取明文传输的,容易被中间人窃听、拦截、篡改,存在安全隐患。 常见提高安全性的方法是对通信内容进行加密,再进行传输,常见的加密方式有 不可逆加密:单向散列函数 可逆加密:对称加密、非对称…

从模型到服务——iDesktopX处理自动化工具实现BIM模型到三维服务发布

目录前言一、 处理自动化模型二、 算子参数设置1、 使用迭代数据集打开导出后的BIM模型2、 移除重复点、重复面和重复子对象3、 模型生成缓存4、 三维切片缓存发布5、 执行结果前言 BIM模型在SuperMap实际使用的业务流程中常常需要在桌面产品中生成缓存,然后通过iS…

安装和配置MySQL

首先前往官网下载mysql社区版(不要钱) MySQL Community Serverhttps://dev.mysql.com/downloads/windows/installer/8.0.html 甲骨文比较鸡贼,会要求你注册一个账号。但是下面有一行小字,直接点击下载就好了 双击后直接按…