公共文件服务
图片访问压缩
1.本地部署方式 :nginx 安装插件 ngx_http_image_filter_module
1.1安装依赖:
yum -y install gd gd-devel
yum -y install libxslt-devel
yum -y install perl-devel perl-ExtUtils-Embed
1.2 查看nginx原参数
nginx -V
nginx version: nginx/1.20.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
1.3 重新编译nginx
重新编译时需要下载和原来相同版本的nginx源码,解压。 添加--with-http_image_filter_module=dynamic及原来的参数(不需要执行make install命令重新安装) 如果编译找不到GD library,建议卸载gd、gd-devel后重新安装依赖
./configure --with-http_image_filter_module=dynamic --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
1.4 备份原nginx
cp -r /usr/local/nginx /usr/local/nginx-bak
1.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
1.6 修改nginx配置
在配置的http外配置加载模块
load_module /usr/local/nginx/module/ngx_http_image_filter_module.so;
配置图片处理
# 缩略图配置
location ~* /file/cloud/(.*)\.(jpg|png)_(\d+)_(\d+)$ {
set $w $3;
set $h $4;
image_filter resize $w $h;
#设置图片缓冲区的最大大小,大小超过设定值,服务器将返回错误415
image_filter_buffer 30M;
image_filter_interlace on;
image_filter_jpeg_quality 80;
try_files /$1.$2 /default.jpg;
expires 1d;
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
alias /usr/local/youmatech/pic/cloud ;
}
# 原图访问配置
location /file/cloud {
alias /usr/local/youmatech/pic/cloud;
}
1.7 图片测试
https://xxxxxxxx/file/cloud/app/resize_test/test.png_100_100
nginx -s reload