欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

FastDFS结合Nginx Image 模块使用缩略图

程序员文章站 2024-01-20 08:43:46
...

1,安装nginx缩略图模块:点击查看

2,安装FastDFS图片服务器:点击查看

3,配置nginx访问静态资源FastDFS资源

server {
        listen 81;

        #配置图片缩略图,匹配图片后缀
        location ~* /group1/M00/.*\.(gif|jpg|jpeg|png)$ {
            root /home/yuqing/cx_expense/data/;
            image on;
            image_output off;
            image_jpeg_quality 75;
            image_backend off;
            image_backend_server http://baidu.com/docs/aabbc.png; #配置一个不存在的图片地址,防止查看缩略图时图片不存在,服务器响应慢
        }
        location ~* /group1/M01/.*\.(gif|jpg|jpeg|png)$ {
            root /home/yuqing/sun_miniapp/data/;
            image on;
            image_output off;
            image_jpeg_quality 75;
            image_backend off;
            image_backend_server http://baidu.com/docs/aabbc.png; #配置一个不存在的图片地址,防止查看缩略图时图片不存在,服务器响应慢
        }
        location ~* /group1/M02/.*\.(gif|jpg|jpeg|png)$ {
            root /home/yuqing/cx_gov/data/;
            image on;
            image_output off;
            image_jpeg_quality 75;
            image_backend off;
            image_backend_server http://baidu.com/docs/aabbc.png; #配置一个不存在的图片地址,防止查看缩略图时图片不存在,服务器响应慢
        }

        #不是图片文件使用ngx_fastdfs_module模块处理
        location ~ /group1/M00/ {
           root /home/yuqing/cx_expense/data/;
           ngx_fastdfs_module;
        }

        location ~ /group1/M01/ {
           root /home/yuqing/sun_miniapp/data/;
           ngx_fastdfs_module;
        }

        location ~ /group1/M02/ {
           root /home/yuqing/cx_gov/data/;
           ngx_fastdfs_module;
        }
}

上面配置了3个store_path(三个项目),分别监听81端口的/group1/M00/、/group1/M01/、/group1/M02/,并判断是否是图片后缀结尾,如果是图片后缀结尾使用缩略图模块进行图片处理,不是图片文件再匹配使用ngx_fastdfs_module模块处理文件

// store_path配置
store_path0=/home/yuqing/cx_expense
store_path1=/home/yuqing/sun_miniapp
store_path2=/home/yuqing/cx_gov

3,测试访问

初次访问图片文件出现了404错误,没有找到文件,这时通过查看nginx 的error日志显示
FastDFS结合Nginx Image 模块使用缩略图
打开 “/home/yuqing/cx_gov/data/group1/M02/00/00/rBEAAVtuYWqAMKrlAAFlT6ngLVA171.jpg” 路径下文件失败了,我们
在查看nginx配置信息可以看到错误路径是通过 root + location 定位到的目标图片路径,但是这个路径是不存在的,所以这里我们需要通过ln软连接命令,让图片路径可以成功被访问到
FastDFS结合Nginx Image 模块使用缩略图
建立软连接:

mkdir -p /home/yuqing/cx_gov/data/group1/M02
ln -s /home/yuqing/cx_gov/data/* /home/yuqing/cx_gov/data/group1/M02

这时就可以访问到图片文件了:
1,访问原图:http://47.98.146.185:81/group1/M02/00/00/rBEAAVtuYWqAMKrlAAFlT6ngLVA171.jpg
2,缩略图:http://47.98.146.185:81/group1/M02/00/00/rBEAAVtuYWqAMKrlAAFlT6ngLVA171.jpg!m200x200.jpg
3,访问文件:http://47.98.146.185:81/group1/M02/00/00/rBBfeltv62CAYlJ3AAAAdj5jewI693.txt
FastDFS结合Nginx Image 模块使用缩略图
FastDFS结合Nginx Image 模块使用缩略图
FastDFS结合Nginx Image 模块使用缩略图
访问缩略图后默认会在原图所在的目录生成一张静态的缩略图片,可以通过image_output on配置关闭

image_output on

FastDFS结合Nginx Image 模块使用缩略图