单机版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

原文地址:https://www.cnblogs.com/EternityYang/p/13705384.html