当前位置: 首页 > news >正文

Nginx 新增模块 http_image_filter_module 来实现动态生成缩略图

前言

通过 nginx 的 HttpImageFilterModule 模块裁剪过大的图片到指定大小,这个nginx自带的模块是默认关闭的,所以需要重新编译nginx加上此模块。

一、编译 nginx

1.查看 nginx 模块

由于nginx 是之前装好的,这里需要先看一下是否安装了HttpImageFilterModule模块

切换到 nginx /sbin目录下,执行命令 ./nginx -V

–prefix=/usr/local/nginx
–with-http_ssl_module
–add-module=…/fastdfs-nginx-module-master/src
–with-http_gzip_static_module
–with-stream
–with-http_stub_status_module
–with-http_realip_module

没有HttpImageFilterModule 模块,需要加上--with-http_image_filter_module

2.重新编译安装 nginx

切换到 nginx 的解压目录,执行命令

./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=../fastdfs-nginx-module-master/src --with-http_gzip_static_module --with-stream --with-http_stub_status_module --with-http_realip_module --with-http_image_filter_module

出行报错

缺少 GD 依赖,执行命令yum install gd gd-devel,重新编译成功之后执行 make && make install

再次执行./nginx -V 查看 nginx 模块
在这里插入图片描述

二、配置 nginx

修改 nginx.conf 配置文件

location ~/group1/M00/(.+)_(\d+)x(\d+)\.(jpg|gif|png|jpeg){ # .表示除\n外的任意字符 +表示1-正无穷 \d表示数字alias /fastdfs/storage/data; #设置别名ngx_fastdfs_module;set $w $2; #正则表达式匹配的第二个参数,此处为第一个(\d+)set $h $3;if ($w != "0") {rewrite group1/M00(.+)_(\d+)x(\d+)\.(jpg|gif|png|jpeg)$ group1/M00$1.$4 break;}set $h $3;if ($h != "0") {rewrite group1/M00(.+)_(\d+)x(\d+)\.(jpg|gif|png|jpeg)$ group1/M00$1.$4 break;}image_filter resize $w $h;image_filter_buffer 50M; ##原图最大50M,要裁剪的图片超过2M返回415错误
}
location ~/group[0-9]/ {ngx_fastdfs_module;
}

其他配置参考

image_filter off;
#关闭模块
image_filter test;
#确保图片是jpeg gif png否则返415错误
image_filter size;
#输出有关图像的json格式:例如以下显示{ “img” : { “width”: 100, “height”: 100, “type”: “gif” } } 出错显示:{}
image_filter rotate 90|180|270;
#旋转指定度数的图像,该度数只能是90, 180, 270,參数能够包括变量,单独或一起与resize crop一起使用。
image_filter resize width height;
#按比例降低图像到指定大小,公降低一个能够还有一个用"-"来表示,出错415,參数值可包括变量,能够与rotate一起使用,则两个一起生效。
image_filter crop width height;
#按比例降低图像比較大的側面积和还有一側多余的载翦边缘,其他和rotate一样。
image_filter_buffer 10M;
#设置读取图像缓冲的最大大小,超过则415错误。
image_filter_interlace on;
#如果启用,最终图像将交错。对于JPEG,最终图像将采用 “逐行JPEG” 格式
image_filter_jpeg_quality 95;
#设置变换的JPEG图像的期望质量。可接受的值是从1到100的范围内。较小的值通常意味着既降低图像质量,降低数据传输,推荐的最大值为95。參数值能够包括变量。
image_filter_sharpen 100;
#添加了最终图像的清晰度。锐度百分比能够超过100。零值将禁用锐化。參数值能够包括变量。
image_filter_transparency on;
#定义是否应该透明转换的GIF图像或PNG图像与调色板中指定的颜色时,能够保留。透明度的损失将导致更好的图像质量。在PNG的Alpha通道总是保留透明度。

配置好之后,重启 nginx

./nginx -s stop
./nginx

测试访问图片

原图测试:

http://192.168.16.123/group1/M00/00/00/wKgfjmLGdKuADrt6AAVDLwY9Icw011.jpg

裁剪测试:

http://192.168.16.123/group1/M00/00/00/wKgfjmLGdKuADrt6AAVDLwY9Icw011_600x300.jpg


总结

以上就是今天要讲的内容,本文仅仅简单介绍了nginx实现图片压缩裁剪的配置,以上方法亲测有效,希望能给大家一个参考。

创作不易,关注💖、点赞👍、收藏🎉就是对作者最大的鼓励👏,欢迎在下方评论留言🧐

相关文章:

Nginx 新增模块 http_image_filter_module 来实现动态生成缩略图

前言 通过 nginx 的 HttpImageFilterModule 模块裁剪过大的图片到指定大小,这个nginx自带的模块是默认关闭的,所以需要重新编译nginx加上此模块。 一、编译 nginx 1.查看 nginx 模块 由于nginx 是之前装好的,这里需要先看一下是否安装了H…...

detach,主线程终止后子线程会结束吗

此前&#xff0c;我对detach的理解是&#xff0c;当主线程退出后&#xff0c;子线程能够继续存在。实际上&#xff0c;当主线程退出后&#xff0c;子线程也随之结束了。先看一个例子&#xff1a; #include <iostream> #include <thread> #include <unistd.h>…...

2023年云计算的发展趋势如何?还值得学习就业吗?

一、2023年云计算的发展将迎来新篇章 随着政策的正式放开&#xff0c;2023年的经济开始慢慢复苏&#xff0c;云计算在疫情期间支撑了复工复产&#xff0c;那么在今年对于云计算发展的限制将进一步的放开。Gartner的数据显示&#xff0c;到2023年&#xff0c;全球公共云支出将达…...

ROS2 入门应用 请求和应答(C++)

ROS2 入门应用 请求和应答&#xff08;C&#xff09;1. 创建功能包2. 创建源文件2.1. 服务端2.2. 客户端3. 添加依赖关系4. 添加编译信息4.1. 添加搜索库4.2. 增加可执行文件4.3. 增加可执行文件位置5. 编译和运行1. 创建功能包 在《ROS2 入门应用 工作空间》中已创建和加载了…...

华为机试题:HJ73 计算日期到天数转换(python)

文章目录博主精品专栏导航知识点详解1、input()&#xff1a;获取控制台&#xff08;任意形式&#xff09;的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方法2、print() &#xff1a;打印输出。3、整型int() &#xff1a;将指定进制&#xf…...

将springboot项目生成可依赖的jar,并引入到项目中

1、将springboot项目生成可依赖的jar包的方法 SpringBoot项目默认打包的是可运行jar包&#xff0c;也可以打包成不可运行的jar包。 能打成可运行的jar包是因为&#xff0c;Spring Boot 项目引入了 spring-boot-maven-plugin 依赖包。 spring-boot-maven-plugin具有repackage …...

小红书搜索关键词布局指南,这4种词一定要把握好

在小红书搜索关键词布局&#xff0c;是提升搜索推流的重要方法&#xff0c;今天跟你讲清楚小红书搜索关键词布局怎么做&#xff5e;做小红书的都知道&#xff0c;小红书的主要流量来源一个是推荐&#xff0c;另一个就是搜索&#xff0c;关键词决定了你的精准人群&#xff0c;那…...

安全研发人员能力模型窥探

能力 是一个比较抽象的概念&#xff0c;不同的行业、管理者、研发人员对能力的认知都会有差异。另外&#xff0c;作为研发团队的相应的职级定级、绩效考核的基础&#xff0c;一个“大家普遍认可”的能力的模型是非常重要的。这是比职级模型更高层的一个基本模型&#xff0c;所谓…...

【面试总结】Linux篇·操作及原理篇

【面试总结】Linux篇原理篇1.介绍一下inode2.说一下Linux系统的目录结构3.说一下Linux系统的文件类型4.如何在Linux上配置一个IP地址5.Linux负载是什么&#xff1f;6.Linux中的软链接和硬链接有什么区别&#xff1f;1.介绍一下inode 硬盘的最小存储单位是扇区(Sector)&#xf…...

C++中如何实现用异或运算找出数组中只出现一次的数字???

文章目录1、异或运算符的运算1、异或运算符的运算 问题描述&#xff1a; 给出一个指定的数组&#xff0c;只有一个数出现一次&#xff0c;剩下都出现两次&#xff0c;找出出现一次的数字。指定数组为[1,2,2,1,3,4,3]。 样例输出&#xff1a;4 #include<iostream> using…...

红黑树的历史和由来。

一个数组&#xff0c;1,2,3,4,5,...n; 一共n个数字。1、直接查找想要查询第n个数字&#xff0c;直接搜索&#xff0c;就是n次查询。ps:那么问题来了&#xff0c;这样查询也太慢了&#xff0c;有什么改进的呢&#xff1f;2、二分查找这个时候&#xff0c;二分查找更快。不过就是…...

蓝库云|制造业数字化转型为何转不动?资料处理很重要

数字化转型已经成为每个产业势在必行的课题&#xff0c;没有人会怀疑数字化技术与科技能解放的生产力能量&#xff0c;但为什么看似美好的愿景&#xff0c;实行起来却如此缓慢&#xff1f;蓝库云认为这是因为没有盖好「资料治理」的地基。 面对不断变化的法令规范要求&#xf…...

【python学习笔记】 :Lambda 函数

Lambda 函数是 Python 中的匿名函数。有些人将它们简称为lambdas&#xff0c;它们的语法如下&#xff1a; lambda arguments: expressionlambda 关键字可以用来创建一个 lambda 函数&#xff0c;紧跟其后的是参数列表和用冒号分割开的单个表达式。例如&#xff0c;lambda x: 2…...

Nginx的proxy buffer参数设置

1. proxy_buffering 语法&#xff1a;proxy_buffering on|off 默认值&#xff1a;proxy_buffering on 上下文&#xff1a;http,server,location作用&#xff1a;该指令开启从后端被代理服务器的响应body缓冲。 如果proxy_buffering开启,nginx假定被代理的后端服务器会以最…...

SPI简介与实例分析

SPI简介 SPI 协议是由Motorola提出的通讯协议 (Serial Peripheral Interface) &#xff0c;是一种高速全双工的串行通信总线。 SPI 通讯使用 3 条总线 &#xff1a;SCK、 MOSI、 MISO &#xff0c;以及若干片选线(SS、CS、NSS)。 主机要和哪个从机通信&#xff0c;就把对应的…...

通过基于pgsql的timescaleDB的time_bucket函数实现自定义聚合粒度

1、自己写的不完全满足要求的实现方式 with tb_tmp as (select *, //计算该时间距离第一天有多少天((extract(epoch from create_time) /3600/24)::integer) as ct_ifrom test.test_salary )select min(a.create_time) as create_time,sum(a.salary) from (select *,//移动数据…...

一台电脑安装26个操作系统(windows,macos,linux)

首先看看安装了哪些操作系统1-4: windows系统 四个5.Ubuntu6.deepin7.UOS家庭版8.fydeOS9.macOS10.银河麒麟11.红旗OS12.openSUSE Leap13.openAnolis14.openEuler(未安装桌面UI)15.中标麒麟&#xff08;NeoKylin&#xff09;16.centos17.debian Edu18.fedora19.oraclelinux20.R…...

dockerfile文件

dockerfile文件内容 Form ip端口/centos:regular ENV JAVA_HOME /E:/Program Files/Java/jdk1.8.0_351 ENV PATH $JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 WORKDIR /opt COPY target/fast.jar /op…...

视觉SLAM ch11回环检测

回环检测的关键&#xff1a;如何有效的检测出相机经过同一个地方。如果成功的检测到可以为后端的位姿图提供更多有效数据&#xff0c;得到全局一致的估计。 回环检测提供了当前数据和所有历史数据的关联&#xff0c;还可以用回环检测进行重定位。 具体方法&#xff1a; 一&am…...

关于Ubuntu20.04文件系统思考

文章目录问题产生Ubuntu文件系统中普通用户可读写地址Ubuntu文件系统Ubuntu文件系统详解一级目录二级目录查找Ubuntu中软件安装位置Ubuntu修改文件权限问题产生 使用electron框架开发桌面端跨平台软件时&#xff0c;当开发完成的程序部署到Ubuntu上&#xff0c;系统无法产生日…...

内嵌于球的等边三棱柱

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 做一个网络让输入只有3个节点&#xff0c;每个训练集里有两张图片&#xff0c;让B的训练集全为0&#xff0c;排列组合A&#xff0c;观察迭代次数平均值的变化。共完成了64组&#xff0c;但只有12组不同的迭代次数。 差值结构 A-B 迭代次…...

论文解读 | [CVPR2020] ContourNet:向精确的任意形状场景文本检测迈出进一步

目录 1 研究背景和目的 1.1 主要贡献&#xff1a; 1.2 两个挑战&#xff1a; 2 ContourNet 3 方法论 3.1 Adaptive-RPN 3.2 LOTM 3.3 点重定位算法 4 实验和结果 论文地址&#xff1a;ContourNet: Taking a Further Step toward Accurate Arbitrary-shaped Scene Tex…...

干货分享|数据可视化报表制作技巧

脑中想得再好&#xff0c;也要看最终的效果呈现。但偏偏有些用户分析思维不差&#xff0c;就是数据分析报表的制作拖了后腿&#xff0c;导致始终无法完美呈现数据可视化分析效果。本文将总结奥威BI软件上的常用的数据可视化报表制作技巧&#xff0c;供大家随时查阅。 BI数据可…...

Longhorn,企业级云原生容器分布式存储 - 备份与恢复

Longhorn&#xff0c;企业级云原生容器分布式存储 - 备份与恢复快照手动快照周期性快照和备份使用 Longhorn UI 设置周期性快照使用 StorageClass 设置 Recurring Jobs分离卷时允许 Recurring Job容灾卷创建容灾(DR)卷备份设置备份目标使用阿里云OSS备份存储准备工作为 S3 兼容…...

亿级高并发电商项目-- 实战篇 --万达商城项目 十(安装与配置Elasticsearch和kibana、编写搜索功能、向ES同步数据库商品数据)

亿级高并发电商项目-- 实战篇 --万达商城项目搭建 一 &#xff08;商家端与用户端功能介绍、项目技术架构、数据库表结构等设计&#xff09; 亿级高并发电商项目-- 实战篇 --万达商城项目搭建 一 &#xff08;商家端与用户端功能介绍、项目技术架构、数据库表结构等设计&#x…...

windwos安装spring-cloud-alibaba-nacos

windwos安装spring-cloud-alibaba-nacos前言一、预备环境二、下载源码或者安装包1.启动2.关闭总结前言 这个快速开始手册是帮忙您快速在您的电脑上&#xff0c;下载、安装并使用 Nacos。 一、预备环境 Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos&#x…...

Spring Boot 项目如何统一结果,统一异常,统一日志

1 统一结果返回目前的前后端开发大部分数据的传输格式都是json&#xff0c;因此定义一个统一规范的数据格式有利于前后端的交互与UI的展示。1.1 统一结果的一般形式是否响应成功&#xff1b;响应状态码&#xff1b;状态码描述&#xff1b;响应数据&#xff1b;其他标识符&#…...

Ubuntu下用Lean源码编译openwrt及一行命令u盘启动openwrt安装x86硬盘上

Ubuntu下用Lean源码编译openwrt 源码地址&#xff1a;https://github.com/coolsnowwolf/lede 1&#xff1a;首先微软云服务器装好 Ubuntu 64bit&#xff0c;推荐 Ubuntu 20.04 LTS x64&#xff0c;免费一年。ip设置在地球某处。总结就是每一步需要下载的都得下载完&#xff0c;…...

JavaScript Number 对象

JavaScript 是一门非常强大的编程语言&#xff0c;它提供了许多内置对象来帮助开发者在编写 JavaScript 应用时更轻松地处理数据。其中一个非常有用的对象是 JavaScript Number 对象&#xff0c;它可以帮助我们处理数值类型的数据&#xff0c;例如整数和浮点数。在本文中&#…...

【原创】java+swing+mysql银行ATM管理系统

本文主要介绍使用javaswingmysql去设计一个银行ATM管理系统&#xff0c;模仿实现存款、取款、转账、余额查询等功能。 功能分析&#xff1a; 隐含ATM管理系统一般分为管理员和用户角色&#xff0c;管理员可以进行用户管理、账单管理&#xff0c;用户可以进行转取存款等功能如…...

网站建设jsp/seo是什么专业

今天和大家分享10个批量快速处理PPT 的技巧&#xff01;没错&#xff01;就是你想的“批发”处理~话不多说&#xff0c;赶紧一起来学习吧~一、批量提取PPT模板里的元素 在制作PPT的过程中&#xff0c;经常会遇到自己喜欢的模板&#xff01;可真正喜欢的是里面的素材&#xff0c…...

网站开发美工绩效考核/seo公司推广宣传

基于光流法相位提取算法原理的参考文献为&#xff1a;点击打开链接%% *******************************************%% **********************************************clear;close all;clc;N 512;xmax 1;ymax 1;delta [0,pi/3];x linspace(-xmax,xmax,N);y linspace(-y…...

做教案比较好的网站/磁力搜索器

Linux网络的IPv6应用(2)(转)-F &#xff1a;清除所有的已订定的规则&#xff1b;-X &#xff1a;杀掉所有使用者建立的表&#xff08;table&#xff09;。-Z &#xff1a;将所有的链(chain) 的计数与流量统计都归零。(2)建立政策#ip6tables [-t tables] [-P] [INPUT,OUTPUT,FOR…...

wordpress表格css样式表/网络营销公司是做什么的

Python编码问题一直困扰了我许久&#xff0c;之前有过一些总结&#xff0c;但并不系统&#xff0c;比较凌乱。当然python2.x编码问题本身&#xff0c;便是剪不断理还乱。本篇将系统介绍python2.x编程中会遇到的一些编码问题&#xff0c;并给出解决方案。基于对编码问题的摸索了…...

深圳市企业服务体系平台建设方案/全网优化哪家好

以下介绍经常使用的集合类&#xff0c;这里不介绍集合类的使用方法&#xff0c;只介绍每个集合类的用途和特点&#xff0c;然后通过比较相关集合类的不同特点来让我们更深入的了解它们。Collection接口Collection是最基本的集合接口&#xff0c;一个Collection代表一组Object&a…...

北京市住房和城乡建设委网站/他达拉非什么是

发工资咯&#xff1a; Time Limit: 2000/1000ms (Java/Others) Problem Description: 作为广财大的老师&#xff0c;最盼望的日子就是每月的8号了&#xff0c;因为这一天是发工资的日子&#xff0c;养家糊口就靠它了&#xff0c;呵呵 但是对于学校财务处的工作人员来说&#xf…...