Nginx安装动态缩略图模块访问fastdfs文件服务器

前文

nginx根目录(/opt/nginx-1.17.0)、nginx模块安装目录(/usr/local/nginx)可能路径跟你们的有出入,请自行替换,若nginx未安装,请参考我的其他文章

正文

  1. 先安装可能用到的依赖包
yum install libgd2-devel
yum install libpcre-devel
yum install libcurl-devel
yum install gd-devel

  1. 进入nginx根目录(注意这里是nginx根目录,不是nginx模块的安装目录),下载Nginx Image缩略图模块
cd /opt/nginx-1.17.0
wget https://github.com/3078825/nginx-image/archive/master.zip  --若下载慢,直接浏览器下载后拷贝到这个目录即可
unzip master.zip
  1. 运行nginx -V命令查看已经安装的nginx模块(configure arguments:后面表示当前已经安装的nginx模块)
[root@VM_129_9_centos nginx-1.17.0]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.17.0
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/ --conf-path=/usr/local/nginx/conf/nginx.conf --with-http_ssl_module  --add-module=/usr/local/fastdfs-nginx-module/src
我这里已经安装了fastdfs模块 --add-module=/usr/local/fastdfs-nginx-module/src, 这个在后续添加缩略图模块时不要遗漏
  1. 添加动态缩略图模块 --add-module=ngx_image_thumb-master
./configure --prefix=/usr/local/nginx/ --conf-path=/usr/local/nginx/conf/nginx.conf --with-http_ssl_module --add-module=ngx_image_thumb-master --add-module=/usr/local/fastdfs-nginx-module/src
  1. 编译
make
  1. 备份nginx模块安装目录下的/usr/local/nginx/sbin/nginx文件(防止失败情况可还原用),拷贝新编译的objs/nginx到/usr/local/nginx/sbin/nginx目录下,到此缩略图模块安装完成。
cp objs/nginx /usr/local/nginx/sbin/nginx 
若复制失败,进入/usr/local/nginx/sbin目录关闭nginx服务    ./nginx -s stop
  1. 进入nginx模块安装目录配置nginx.conf文件,配置缩略图参数。
cd /usr/local/nginx/conf
vim nginx.conf
    server {
        listen       9080 ssl;
        server_name  域名/ip;

        ssl_certificate      /usr/local/nginx/cert/1_spinms.spinsoft.cn_bundle.crt;
        ssl_certificate_key  /usr/local/nginx/cert/2_spinms.spinsoft.cn.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

		#配置图片缩略图,匹配图片后缀,使用缩略图模块进行图片处理(多个storage需要配置多个location)
      	location ~* /group1/M00/.*\.(gif|jpg|jpeg|png)$ {
            root /opt/fastdfs/;
            image on;
            image_output on;
            image_jpeg_quality 75;
            #image_backend off;
            #image_backend_server http://baidu.com/docs/aabbc.png; #配置一个不存在的图片地址,防止查看缩略图时图片不存在,服务器响应慢
        }

		#不是图片文件使用ngx_fastdfs_module模块处理
        location ~ /group([0-9]) {
            root   /opt/fastdfs/;
            #配置响应头头部,携带参数传download=1支持下载功能,支持携带参数fileName自定义文件下载名
            if ( $query_string ~* ^(.*)download=config\b|1\b(.*)$ ){
                add_header Content-Disposition "attachment;fileName=$arg_filename";
            }
            ngx_fastdfs_module;
        }
}

cd /usr/local/nginx/sbin
./nginx

测试原图:https://域名/group1/M00/00/00/CgCBCWBcQOiAL3dhAAJ9SuF-Xws627.jpg
测试缩略图:https://域名/group1/M00/00/00/CgCBCWBcQOiAL3dhAAJ9SuF-Xws627.jpg!m200x200.jpg

C 参数按请求宽高比例从图片高度 10% 处开始截取图片,然后缩放/放大到指定尺寸( 图片缩略图大小等于请求的宽高 )

M 参数按请求宽高比例居中截图图片,然后缩放/放大到指定尺寸( 图片缩略图大小等于请求的宽高 )

T 参数按请求宽高比例按比例缩放/放大到指定尺寸( 图片缩略图大小可能小于请求的宽高 )

W 参数按请求宽高比例缩放/放大到指定尺寸,空白处填充白色背景颜色( 图片缩略图大小等于请求的宽高 )

若缩略图出现以下404情况,则建立一个软连接(一定要注意路径,很关键)

mkdir -p /opt/fastdfs/group1
ln -s /opt/fastdfs/data /opt/fastdfs/group1/M00

在这里插入图片描述
正常访问如下图:
在这里插入图片描述

参数说明
image on/off 是否开启缩略图功能,默认关闭

image_backend on/off 是否开启镜像服务,当开启该功能时,请求目录不存在的图片(判断原图),将自动从镜像服务器地址下载原图

image_backend_server 镜像服务器地址

image_output on/off 是否不生成图片而直接处理后输出 默认off

image_jpeg_quality 75 生成JPEG图片的质量 默认值75

image_water on/off 是否开启水印功能

image_water_type 0/1 水印类型 0:图片水印 1:文字水印

image_water_min 300 300 图片宽度 300 高度 300 的情况才添加水印

image_water_pos 0-9 水印位置 默认值9 0为随机位置,1为顶端居左,2为顶端居中,3为顶端居右,4为中部居左,5为中部居中,6为中部居右,7为底端居左,8为底端居中,9为底端居右

image_water_file 水印文件(jpg/png/gif),绝对路径或者相对路径的水印图片

image_water_transparent 水印透明度,默认20

image_water_text 水印文字 "Power By Vampire"

image_water_font_size 水印大小 默认 5

image_water_font 文字水印字体文件路径

image_water_color 水印文字颜色,默认 #000000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值