zoukankan      html  css  js  c++  java
  • 搭建FastDFS

    ---恢复内容开始---

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

     

    图片下载流程类似

    1.1   上传文件的文件名

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

      (1). 组名:文件上传后所在的storage组名称,在文件上传成功后有storage服务器返回,需要客户端自行保存。

      (2). 虚拟磁盘路径:storage配置的虚拟路径,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。

      (3). 数据两级目录:storage服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。

      (4). 文件名:与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息

    1.2    FastDFS搭建

    可以使用一台虚拟机来模拟,只有一个Tracker、一个Storage服务,配置nginx访问图片。详细步骤如下:

    1.3 搭建步骤

      (1). 把fastDFS都上传到linux系统。
      (2). 安装FastDFS之前,先安装libevent工具包。
        yum -y install libevent
      (3). 安装libfastcommonV1.0.7工具包。
        <1> 解压缩
        <2> ./make.sh
        <3> ./make.sh install
        <4> 把/usr/lib64/libfastcommon.so文件向/usr/lib/下复制一份
      (4). 安装Tracker服务。
        <1> 解压缩
        <2> ./make.sh
          <3> ./make.sh install
        安装后在/usr/bin/目录下有以fdfs开头的文件都是编译出来的,配置文件都放到/etc/fdfs文件夹
           <4> 把/root/FastDFS/conf目录下的所有的配置文件都复制到/etc/fdfs下。
             <5> 配置tracker服务,修改/root/FastDFS/conf/tracker.conf文件。

         <6> 启动tracker。/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf 

                  重启使用命令:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

      (5). 安装storage服务
        <1> 如果是在不同的服务器安装,第四步的1~4需要重新执行
        <2> 配置storage服务。修改/root/FastDFS/conf/storage.conf文件

         <3> 启动storage服务

            /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

      (6). 测试服务

         <1> 修改配置文件/etc/fdfs/client.conf

          执行命令: /usr/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg 上传anti-steal.jpg到配置文件中指定目录下

       (7). 搭建nginx提供http服务     

         可以使用官方提供的nginx插件。要使用nginx插件需要重新编译。fastdfs-nginx-module_v1.16.tar.gz
          <1> 解压插件压缩包
          <2> 修改/root/fastdfs-nginx-module/src/config文件,把其中的local去掉。

          <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> 把/root/fastdfs-nginx-module/src/mod_fastdfs.conf文件复制到/etc/fdfs目录下。编辑:

         <7> nginx的配置

            在nginx的配置文件中添加一个Server:

    server {
            listen       80;
            server_name  192.168.101.3; // 必须配置为本机IP地址,localhost 貌似有些情况不行
    
            location /group1/M00/{
                    //配置文件中数据存放目录
                    root /home/FastDFS/fdfs_storage/data; 
                    ngx_fastdfs_module;
            }
    }

          <8> 将libfdfsclient.so拷贝至/usr/lib下

            cp /usr/lib64/libfdfsclient.so /usr/lib/

          <9> 启动nginx

    备注:

      有些情况下,图片上传成功,但浏览器就是无法查看该图片,经常出现404错误,根据实际情况,主要有以下几种解决情况:

        1. 文件存放目录权限问题,可以增加目录的读写权限

          chmod -R 777 path_data

        2. nginx的nginx.conf配置文件中第一行 user属性指定为:root

        3. 配置server的时候,尽量不要使用localhost,以ip地址取代之,同时需要配置location属性中的文件存放目录,即就是:  

          root /home/FastDFS/fdfs_storage/data; 

     

    ---恢复内容结束---

    ---恢复内容开始---

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

     

    图片下载流程类似

    1.1   上传文件的文件名

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

      (1). 组名:文件上传后所在的storage组名称,在文件上传成功后有storage服务器返回,需要客户端自行保存。

      (2). 虚拟磁盘路径:storage配置的虚拟路径,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。

      (3). 数据两级目录:storage服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。

      (4). 文件名:与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息

    1.2    FastDFS搭建

    可以使用一台虚拟机来模拟,只有一个Tracker、一个Storage服务,配置nginx访问图片。详细步骤如下:

    1.3 搭建步骤

      (1). 把fastDFS都上传到linux系统。
      (2). 安装FastDFS之前,先安装libevent工具包。
        yum -y install libevent
      (3). 安装libfastcommonV1.0.7工具包。
        <1> 解压缩
        <2> ./make.sh
        <3> ./make.sh install
        <4> 把/usr/lib64/libfastcommon.so文件向/usr/lib/下复制一份
      (4). 安装Tracker服务。
        <1> 解压缩
        <2> ./make.sh
          <3> ./make.sh install
        安装后在/usr/bin/目录下有以fdfs开头的文件都是编译出来的,配置文件都放到/etc/fdfs文件夹
           <4> 把/root/FastDFS/conf目录下的所有的配置文件都复制到/etc/fdfs下。
             <5> 配置tracker服务,修改/root/FastDFS/conf/tracker.conf文件。

         <6> 启动tracker。/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf 

                  重启使用命令:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

      (5). 安装storage服务
        <1> 如果是在不同的服务器安装,第四步的1~4需要重新执行
        <2> 配置storage服务。修改/root/FastDFS/conf/storage.conf文件

         <3> 启动storage服务

            /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

      (6). 测试服务

         <1> 修改配置文件/etc/fdfs/client.conf

          执行命令: /usr/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg 上传anti-steal.jpg到配置文件中指定目录下

       (7). 搭建nginx提供http服务     

         可以使用官方提供的nginx插件。要使用nginx插件需要重新编译。fastdfs-nginx-module_v1.16.tar.gz
          <1> 解压插件压缩包
          <2> 修改/root/fastdfs-nginx-module/src/config文件,把其中的local去掉。

          <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> 把/root/fastdfs-nginx-module/src/mod_fastdfs.conf文件复制到/etc/fdfs目录下。编辑:

         <7> nginx的配置

            在nginx的配置文件中添加一个Server:

    server {
            listen       80;
            server_name  192.168.101.3; // 必须配置为本机IP地址,localhost 貌似有些情况不行
    
            location /group1/M00/{
                    //配置文件中数据存放目录
                    root /home/FastDFS/fdfs_storage/data; 
                    ngx_fastdfs_module;
            }
    }

          <8> 将libfdfsclient.so拷贝至/usr/lib下

            cp /usr/lib64/libfdfsclient.so /usr/lib/

          <9> 启动nginx

    备注:

      有些情况下,图片上传成功,但浏览器就是无法查看该图片,经常出现404错误,根据实际情况,主要有以下几种解决情况:

        1. 文件存放目录权限问题,可以增加目录的读写权限

          chmod -R 777 path_data

        2. nginx的nginx.conf配置文件中第一行 user属性指定为:root

        3. 配置server的时候,尽量不要使用localhost,以ip地址取代之,同时需要配置location属性中的文件存放目录,即就是:  

          root /home/FastDFS/fdfs_storage/data; 

     

    ---恢复内容结束---

  • 相关阅读:
    git 常用命令 command 1.0(本地 local repository 对远程仓库 remote repository 的操作)
    git 常用命令 command
    git .gitignore 忽略列表
    节点的类型
    Error.name 六种值对应的信息
    js或jquery中的验证
    转载:JavaWeb学习总结(五十三)——Web应用中使用JavaMail发送邮件
    转载:JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件
    转载:JavaWeb学习总结(五十一)——邮件的发送与接收原理
    转载:JavaWeb学习总结(五十)——文件上传和下载
  • 原文地址:https://www.cnblogs.com/sunfie/p/6880128.html
Copyright © 2011-2022 走看看