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;

		#配置图片缩略图,匹配图片后缀,使用缩略图模块进行图片处理
        location ~* /group([0-9])/.*\.(gif|jpg|jpeg|png)$ {
          root  /opt/fastdfs/;
          image on;
          image_output off;
          image_jpeg_quality 75;
          image_backend off;
          image_backend_server http://baidu.com/123.jpg; #配置一个不存在的图片地址,防止查看缩略图时图片不存在,服务器响应慢
          #配置响应头头部,携带参数传download=1支持下载功能,支持携带参数fileName自定义文件下载名
          if ( $query_string ~* ^(.*)download=config\b|1\b(.*)$ ){
                add_header Content-Disposition "attachment;fileName=$arg_filename";
            }

         }
		#不是图片文件使用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;
        }
}

测试原图:https://域名/group1/M00/00/00/CgCBCWBcQOiAL3dhAAJ9SuF-Xws627.jpg
测试缩略图:https://域名/group1/M00/00/00/CgCBCWBcQOiAL3dhAAJ9SuF-Xws627.jpg!m200x200.jpg
若缩略图出现以下404情况,则建立一个软连接

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

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

参数说明
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

上一篇:Java实现FastDFS文件上传、查询、下载和删除


下一篇:linux离线安装Fastdfs