zoukankan      html  css  js  c++  java
  • 单机版FastDFS+nginx文件服务器搭建

    参考资料,准备搭建一个分布式文件服务器,奈何资源有限,只能搭建一个单机版FastDFS文件服务器(nginx、FastDFS-master等都在同一服务器),FastDFS分布式文件服务器简介在此不做赘述。

    话不多说,直接上教程:

    1. 官网下载相关相关安装包:https://github.com/happyfish100 ,都下载最新的:fastdfs-master、libfastcommon-master、fastdfs-nginx-module-master,避免版本问题;
    2. 上传到相应服务器并解压;
    3. 编译安装fast-master

      [root@localhost fastDFS]# cd libfastcommon-master/

      [root@localhost libfastcommon-master]# ./make.sh

          [root@localhost libfastcommon-master]# ./make.sh install

        

       4.  编译安装FastDFS

        [root@localhost  fastDFS]# cd FastDFS

        [root@localhost  FastDFS]# ./make.sh

         

            [root@localhost FastDFS]# ./make.sh install

        

      5. 拷贝配置文件

        将fastdfs安装目录下的conf下的文件拷贝到/etc/fdfs/下

      6. 修改/etc/fdfs/tracker.conf

        将base_path=/home/yuqing/fastdfs改成base_path=/data/fastdfs

       7. 创建trackerd数据、日志目录

       8. 重启trackerd: [root@localhost  ~]# /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

        此时在创建的trackerd目录下新添了几个文件证明重启成功  

        或者使用端口查看命令[root@localhost   fastdfs]# ps -ef|grep trackerd

        

       9. 配置并启动storaged

        修改storage.conf :

        base_path=/home/yuqing/fastdfs改为:base_path=/data/fastdfs

        store_path0=/home/yuqing/fastdfs改为:store_path0=/data/fastdfs/storage

        tracker_server=192.168.209.121:22122改为:tracker_server=127.0.0.1:22122,这个ip改成部署的服务器ip

        新建store_path0 的路径文件夹storage

        启动:[root@localhost  fastdfs]# /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

        查看storaged进程:[root@localhost  fastdfs]# ps -ef|grep storaged

           

        说明storaged已经启动起来;其实也可以查看日志:/data/fastdfs/logs/storaged.log来判断storaged是否正常启动起来

       接下来才是重点:FastDFS 和nginx整合

      10.解压fastdfs-nginx-module ,进入src复制mod_fastdfs.conf到/etc/fdfs/

              base_path=/tmp改成:base_path=/data/fastdfs

         tracker_server=tracker:22122改成:tracker_server=127.0.0.1:22122(ip为部署文件服务器的ip)

         url_have_group_name = false改成:url_have_group_name = true;#url中包含group名称

         store_path0=/home/yuqing/fastdfs改成:store_path0=/data/fastdfs/storage

      11.NGINX安装

         ①下载NGINX安装包并解压

         ②安装NGINX并添加fastdfs模块

         [root@localhost  app]# cd nginx-1.12.0

         [root@localhost  nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --add-module=/apps/fastDFS/fastdfs-nginx-module-1.22/src/

         添加模块成功

         可以使用./nginx –V查看添加的模块,出现下面所示说明安装成功:

         

    配置nginx配置文件

    内容如下,ip注意改成自己的:

    events {
        use epoll;
    
        worker_connections  1024;
    }
    http {
        server {
            listen       80;
            server_name  127.0.0.1;
    
            location /group1/M00/{
                    #root /home/FastDFS/fdfs_storage/data;
                    ngx_fastdfs_module;
            }
        }
        server {
            listen 8888;
        server_name 127.0.0.1;
            location / {
                root   html;
                index  index.html index.htm;
            }
        }
    }

    启动nginx:

    [root@localhost conf]# cd /usr/local/nginx/sbin/

    [root@localhost sbin]# ./nginx -c /usr/local/nginx/conf/nginx-fdfs.conf

    到这里配置及安装就完成了

         对NGINX编译安装

         [root@localhost  nginx-1.12.0]# make

         [root@localhost  nginx-1.12.0]# make install

         在NGINX中make时,有时会报下面这些错误:

         (1) …xxx:/common.c:349: error: request for member ‘path’ in something not a structure or union

         解决办法:为避免各个安装包之间的依赖,建议各个安装包都是最新版,升级fastdfs版本,V6.03起,本次安装使用的是V6.04版本

         (2) /usr/local/include/fastdfs/fdfs_define.h:15:27: 致命错误:common_define.h:没有那个文件或目录

         解决办法:更改fastdfs-nginx-master下的config文件,将ngx_module_incs 和CORE_INCS的值改成下面的值即可

         ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"

         CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

         重新make 

         make install

         注意:(1)在安装NGINX的时候需要用到gcc,若没有安装gcc,可以使用离线安装,下载相关的rpm包,使用rpm -Uvh *.rpm --nodeps --force(忽略关联性、强制安装) 命令

            (2)安装完gcc再次编译NGINX的时候如果出现make: *** No rule to make target build', needed bydefault'. Stop. 说明还缺少pcre-8.44.tar.gz 、zlib-1.2.11.tar.gz、openssl-0.9.8h.tar.gz 三个包,下载并解压,按照先后依赖,安装顺序为:

        zlib-1.2.11.tar.gz:# make

        zlib-1.2.11.tar.gz:# make install

        openssl-0.9.8h.tar.gz:# make

        openssl-0.9.8h.tar.gz:# make install

        pcre-8.44.tar.gz:# ./configure

        pcre-8.44.tar.gz:# make

        pcre-8.44.tar.gz:# make install

        (3)安装完后可以使用gcc –v查看是否按照成功

      12.测试

             项目导入fastdfs相关的jar包,编写工具类,进行上传和读取

        pom.xml:

        <dependency>

          <groupId>org.csource</groupId>

          <artifactId>fastdfs-client-java</artifactId>

          <version>1.27-SNAPSHOT</version>

        </dependency>

        Application.properties:

          http.tracker_http_port=80

          tracker_server=127.0.0.1:22122(ip换成自己部署的ip)

          关于fastdfs的工具类网上资源有好多,根据业务需要,参考度娘编写即可

            

            

          上传成功之后,会返回文件组名和文件名(按fastdfs规则生成):

          [group1, M00/00/00/wBOAL19V2E6AQvW9AAvqH-Poukk328.jpg]

          支持在线预览,浏览器输入部署的文件服务器ip:端口/组名/fastdfs规则生成的文件名,如下:

          http://127.0.0.1/group1/M00/00/00/wBOAL19V2E6AQvW9AAvqH-Poukk328.jpg

          

          文件服务器存储文件的目录为上面storaged 的store_path0,本次配置文件存储位置为:

          /data/fastdfs/storage/data/00/00

          

          集群分布式文件服务器环境等有时间会补齐,暂做记录。

          参考:https://www.cnblogs.com/youzhibing/p/9160690.html

             https://blog.csdn.net/GMCN__/article/details/104844278

  • 相关阅读:
    springboot整合mybatis采用druid连接池对mysql,hive双数据源整合并打包
    csv数据导入kudu
    Hive数据导入导出的几种方式
    【纪中受难记】——Day20:祈祷落幕时
    2017第八届蓝桥杯C/C++ B组省赛 —— 第三题:承压计算
    2017第八届蓝桥杯C/C++ B组省赛 —— 第一题:购物单
    2017第八届蓝桥杯C/C++ B组省赛 —— 第一题:购物单
    位运算的奇巧淫技
    位运算的奇巧淫技
    数据结构和算法 —— 图
  • 原文地址:https://www.cnblogs.com/EternityYang/p/13705384.html
Copyright © 2011-2022 走看看