官方文档:
该ngx_http_image_filter_module
模块 (0.7.54+) 是一个过滤器,可将图像转换为 JPEG、GIF、PNG 和 WebP 格式。
默认情况下不构建此模块,应使用 --with-http_image_filter_module
配置参数启用它。
该模块使用 libgd库。建议使用该库的最新可用版本。
WebP 格式支持出现在 1.11.6 版本中。要以这种格式转换图像,
libgd
必须使用 WebP 支持编译库。
示例配置
location /img/ {
proxy_pass http://backend;
image_filter resize 150 100;
image_filter rotate 90;
error_page 415 = /empty;
}
location = /empty {
empty_gif;
}
指令
Syntax: image_filter off;
image_filter test;
image_filter size;
image_filter rotate 90 | 180 | 270;
image_filter resize width height;
image_filter crop width height;
Default: image_filter off;
Context: location
设置对图像执行的转换类型:
-
off
关闭周围位置的模块处理。 -
test
确保响应是 JPEG、GIF、PNG 或 WebP 格式的图像。否则,返回 415(不支持的媒体类型)错误。 -
size
以 JSON 格式输出有关图像的信息,例如:
"img" : { "width": 3360, "height": 2100, "type": "png" }
如果出现错误,输出如下:
{ {} }
-
rotate
90
|180
|270
将图像逆时针旋转指定的度数。参数值可以包含变量。此模式可以单独使用,也可以与
resize
andcrop
转换一起使用。 -
resize
*width*
*height*
按比例将图像缩小到指定尺寸。要仅减少一个维度,可以将另一个维度指定为“
-
”。如果发生错误,服务器将返回代码 415(不支持的媒体类型)。参数值可以包含变量。与rotate
参数一起使用时,旋转发生在归约之后。 -
crop
*width*
*height*
按比例将图像缩小到较大的一侧尺寸,并在另一侧裁剪多余的边缘。要仅减少一个维度,可以将另一个维度指定为“
-
”。如果发生错误,服务器将返回代码 415(不支持的媒体类型)。参数值可以包含变量。与rotate
参数一起使用时,旋转发生在缩减之前。
实用规则:
匹配站点下所有
location ~* \.(JPG|jpg|gif|png|PNG)$ {
image_filter resize 100 100;
}
匹配某个目录
location ~* /image/\.(JPG|jpg|gif|png|PNG)$ {
image_filter resize 100 100;
}
通过URL返回值指定大小
当传递图片高度/宽度参数,就进行裁剪。
location ~* \.(JPG|jpg|gif|png|PNG)$ {
image_filter test;
set $width -; # 图片默认宽度
set $height -; # 图片默认高度
if ($arg_width != "") {
set $width $arg_width;
}
if ($arg_height != "") {
set $height $arg_height;
}
image_filter resize $width $height; # 设置图片宽高
image_filter_buffer 100M; # 设置nginx读取图片最大buffer
}
常见问题:
在使用nginx的image_filter模块进行截图时,我们有可能会遇到请求都返回415 unsupported media type的错误,原因是 buffer溢出了,image_filter_buffer默认是1M,如果图片较大,进行截图的时候会buffer溢出,因此通过调大buffer即可解决。
location ~* \.(JPG|jpg|gif|png|PNG)$ {
image_filter size;
image_filter resize 100 100;
image_filter_buffer 100M;
}
最新评论
# 这只是一个创建远程登录并授权的语句、仅作为记录 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Fit2cloud!' WITH GRANT OPTION;
当MGR集群初始化结束后,需要开启MGR集群自启动(需要有一台节点是自动开启引导) loose-group_replication_start_on_boot = ON #设置节点是否在启动时自动启动 MGR 集群 loose-group_replication_bootstrap_group = ON #设置节点是否作为初始引导节点启动集群
密码:blog.sirliu.com
本内容密码:blog.sirliu.com 最新整理的文章在这里喔:https://blog.sirliu.com/2018/11/shell_lian_xi_ti.html