Linux下FastDFS图片服务器的搭建

在真正的大型Web后台系统中,上传图片的操作可以算是耗时操作,而且其中最大的问题就是,在一个分布式系统中,图片上传不可能上传到当前服务器,这样如果下次访问的是其他服务器,在其他服务器上是没有上传的图片的。解决这些问题,可以采用分布式文件系统FastDFS来搭建Web后端的图片服务器。

一、FastDFS简介

1.1 什么是FastDFS

FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
Linux下FastDFS图片服务器的搭建_第1张图片

1.2 文件上传的流程

Linux下FastDFS图片服务器的搭建_第2张图片

1.3 文件下载的流程

Linux下FastDFS图片服务器的搭建_第3张图片

1.4 上传文件的文件名

客户端上传文件后存储服务器将文件ID返回给客户端,此文件ID用于以后访问该文件的索引信息。文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名。
这里写图片描述

  • 组名:文件上传后所在的storage组名称,在文件上传成功后有storage服务器返回,需要客户端自行保存。
  • 虚拟磁盘路径:storage配置的虚拟路径,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。
  • 数据两级目录:storage服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。
  • 文件名:与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。

二、 FastDFS搭建

这里我们搭建一个Tracker和一个Storage,实现图片的上传。之后结合Nginx提供虚拟路径实现图片的访问。
Linux下FastDFS图片服务器的搭建_第4张图片
准备工作(所需工具下载地址):
Linux下FastDFS图片服务器的搭建_第5张图片
具体步骤如下:

2.1 把FastDFS所需要的都上传到linux系统。

可以使用FileZillaFTP上传工具或者SecureCRT。

2.2 安装FastDFS之前,先安装libevent工具包。

sudo apt-get install libevent-dev

2.3 安装libfastcommon工具包

  1. 解压缩
  2. ./make.sh
  3. ./make,sh install
  4. 如果lib64文件下存在有libfastcommon.so则把/usr/lib64/libfastcommon.so文件向/usr/lib下复制一份。

2.4 安装Tracker服务

  1. 解压缩FastDFS源码压缩包。
  2. ./make.sh
  3. ./make.sh install
    安装后在/usr/local/bin/目录下有以fdfs开头的文件都是编译出来的。
    配置文件都放到/etc/fdfs文件夹
  4. 把FastDFS根目录下的/conf目录下的所有的配置文件都复制到/etc/fdfs
  5. 配置tracker服务。修改/etc/fdfs/tracker.conf文件。
    Linux下FastDFS图片服务器的搭建_第6张图片
  6. 启动Tracker。
    启动命令:/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
    重启命令:/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

2.5 安装Storage服务

  1. 如果是在不同的服务器安装,2.4的1~4需要重新执行。
  2. 配置Storage服务。修改/etc/fdfs/storage.conf文件
    Linux下FastDFS图片服务器的搭建_第7张图片
    Linux下FastDFS图片服务器的搭建_第8张图片
    Linux下FastDFS图片服务器的搭建_第9张图片
  3. 启动Storage服务
    启动命令:/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
    重启命令:/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf restart

2.6 测试服务

  1. 修改配置文件/etc/fdfs/client.conf
    Linux下FastDFS图片服务器的搭建_第10张图片
    Linux下FastDFS图片服务器的搭建_第11张图片
  2. 测试
    /usr/local/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg
    上传成功之后,你会在你配置的文件存放路径下看到上传的图片。

2.7 搭建Nginx提供HTTP服务

  1. 解压fastdfs-nginx-module.tar.gz
  2. 配置相关操作,可查看Nginx的简单使用
  3. 对nginx重新config
    ./configure \
    –prefix=/usr/local/nginx \
    –pid-path=/var/run/nginx/nginx.pid \
    –lock-path=/var/lock/nginx.lock \
    –error-log-path=/var/log/nginx/error.log \
    –http-log-path=/var/log/nginx/access.log \
    –with-http_gzip_static_module \
    –http-client-body-temp-path=/var/temp/nginx/client \
    –http-proxy-temp-path=/var/temp/nginx/proxy \
    –http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
    –http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
    –http-scgi-temp-path=/var/temp/nginx/scgi \
    –add-module=/root/fastdfs-nginx-module/src
  4. make
  5. make install
  6. /fastdfs-nginx-module/src/mod_fastdfs.conf文件复制到/etc/fdfs目录下。编辑:
    这里写图片描述
    Linux下FastDFS图片服务器的搭建_第12张图片
    Linux下FastDFS图片服务器的搭建_第13张图片
    Linux下FastDFS图片服务器的搭建_第14张图片
  7. Nginx的配置
    在nginx的配置文件中添加一个Server:
    server {
    listen 80;
    server_name 192.168.101.3;
    location /group1/M00/{
    #root /home/FastDFS/fdfs_storage/data;
    ngx_fastdfs_module;
    }
    }
  8. 启动nginx
    /usr/local/nginx/sbin/下执行./nginx

三、 图片服务的使用

官方提供一个jar包
使用方法:
1. 把FastDFS提供的jar包添加到工程中
2. 初始化全局配置。加载一个配置文件。
3. 创建一个TrackerClient对象。
4. 创建一个TrackerServer对象。
5. 声明一个StorageServer对象,null。
6. 获得StorageClient对象。
7. 直接调用StorageClient对象方法上传文件即可。

文章中需要的所有工具下载地址:请点击


注意:转载请标明,转自itboy-木小草。
尊重原创,尊重技术。

你可能感兴趣的:(java,Linux,ubuntu,架构设计)