Ubuntu上配置FastDFS+Nginx+fastdfs-nginx-module-master环境搭建 - Go语言中文社区

Ubuntu上配置FastDFS+Nginx+fastdfs-nginx-module-master环境搭建


FastDFS介绍

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

FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker server 进行文 件上传、下载,通过 Tracker server 调度最终由 Storage server 完成文件上传和下载。
Tracker Server 作用是负载均衡和调度,通过 Tracker server 在文件上传时可以根据一些 策略找到 Storage server 提供文件上传服务。可以将 tracker 称为追踪服务器或调度服务 器。
Storage Server 作用是文件存储,客户端上传的文件最终存储在 Storage 服务器上, Storageserver 没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将 storage 称为存储服务器。
FastDFS工作原理图

安装文件资源:https://mega.nz/#F!7vBWmAgZ!QMvQ8lBR1FZyYDf42h-SEg

FastDFS安装

一、安装fastdfs依赖包

  • 解压缩libfastcommon-master.zip
  • 进入到libfastcommon-master的目录中
  • 执行 ./make.sh
  • 执行 sudo ./make.sh install

二、安装fastdfs

  • 解压缩fastdfs-master.zip
  • 进入到 fastdfs-master目录中
  • 执行 ./make.sh
  • 执行 sudo ./make.sh install

三、配置跟踪服务器Tracker

  • 把/etc/fdfs/的tracker.conf.sample文件复制一份为tracker.conf
    sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
    
  • 在/home/python/目录中创建目录 fastdfs/tracker
    mkdir –p /home/python/fastdfs/tracker
    
  • 编辑/etc/fdfs/tracker.conf配置文件
    sudo vim /etc/fdfs/tracker.conf
    
    修改 base_path=/home/python/fastdfs/tracker
    

四、配置跟踪服务器Storage

  • 把/etc/fdfs/的storage.conf.sample文件复制一份为storage.conf
    sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
    
  • 在/home/python/fastdfs/ 目录中创建目录 storage
    mkdir –p /home/python/fastdfs/storage
    
  • 编辑/etc/fdfs/storage.conf配置文件
    sudo vim /etc/fdfs/storage.conf
    
    修改内容:
    base_path=/home/python/fastdfs/storage
    store_path0=/home/python/fastdfs/storage
    tracker_server=自己ubuntu虚拟机的ip地址:22122
    

五、启动tracker和storage两个服务

sudo service fdfs_trackerd start
sudo service fdfs_storaged start

可以用ps -aux | grep fdfs命令查看后台进程,看这两个进程是否开启,若无法启动可重启虚拟机或者更改网络模式,开启成功如下图所示:
tracker 和 storage两个服务开启成功
六、配置client客户端

  • 把/etc/fdfs/的client.conf.sample文件复制一份为client.conf
    sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
    
  • 编辑/etc/fdfs/client.conf配置文件
     sudo vim /etc/fdfs/client.conf
     
     修改内容:
     base_path=/home/python/fastdfs/tracker
     tracker_server=自己ubuntu虚拟机的ip地址:22122
    

七、测试是否安装成功

  • 上传文件测试:
    fdfs_upload_file /etc/fdfs/client.conf 要上传的图片文件路径
    
    如果返回类似 group1/M00/00/00/wKiZg1zdFK2AHczeAADR6vRXv_Q539.png 的文件id则说明文件上传成功,并在浏览器中通过 127.0.0.1:8888/id号 号可以访问到刚刚上传的图片
    文件上传成功访问文件成功

Nginx + fastdfs-nginx-module安装

一、安装nginx时需要先安装依赖包,不然在后面的安装过程可能会报错,首先查看是否安装依赖包

dpkg -l | grep zlib(下载: http://www.zlib.net/ )  zlib-1.2.8.tar.gz
dpkg -l | grep pcre (下载: http://www.pcre.org/ )  pcre-8.21.tar.gz
dpkg -l | grep openssl  ( 下载: http://www.openssl.org/ )  openssl-1.0.1.tar.gz

终端安装依赖包

sudo apt-get install zlib1g-dev
sudo apt-get install libpcre3 libpcre3-dev 
sudo apt-get install openssl libssl-dev

二、安装Nginx 和 fastdfs-nginx-module

  • 把 fastdfs-nginx-module-master.zip 拷贝到 /usr/local 目录下解压

    sudo cp ./fastdfs-nginx-module-master.zip /usr/local
    sudo unzip fastdfs-nginx-module-master.zip
    
  • 在 /usr/local 下新建一个nginx目录,把 nginx-1.8.1.tar.gz拷贝到 /usr/local/nginx 目录下解压

    sudo mkdir -p /usr/local/nginx
    sudo cp ./nginx-1.8.1.tar.gz /usr/local/nginx
    sudo tar -zxvf nginx-1.8.1.tar.gz
    
  • 进入nginx-1.8.1的目录执行以下命令

    sudo ./configure --prefix=/usr/local/nginx/ --add-module=../../fastdfs-nginx-module-master/src
    sudo ./make 或者 sudo make 
    sudo ./make install 或者 sudo make install
    

    注:若在执行sudo ./make 或者 sudo make时报错,就将对应的makefile文件夹中(在 /nginx/nginx-1.8.1/objs) 找到 -Werrori(在第二行) 并去掉 在重新make即可

  • 把 fastdfs-nginx-module-master解压后的目录中src下的 mod_fastdfs.conf 拷贝一份到 /etc/fdfs 中

    sudo cp /usr/local/fastdfs-nginx-module-master/src/mod_fastdfs.conf  /etc/fdfs/mod_fastdfs.conf
    
  • 修改/etc/fdfs/mod_fastdfs.conf 里面的配置

    sudo vim /etc/fdfs/mod_fastdfs.conf
    
    修改内容:
    connect_timeout=10
    tracker_server=自己ubuntu虚拟机的ip地址:22122
    url_have_group_name=true
    store_path0=/home/python/fastdfs/storage
    
  • 把解压缩的 fastdfs-master/conf 目录中的http.conf 和 mime.types 各拷贝一份到/etc/fdfs 中

    sudo cp /home/jahan/Desktop/fastdfs-master/conf/http.conf /etc/fdfs/http.conf 
    sudo cp /home/jahan/Desktop/fastdfs-master/conf/mime.types /etc/fdfs/mime.types
    
  • 修改 /usr/local/nginx/conf 下 nginx.conf 中的配置

    sudo vim /usr/local/nginx/conf/nginx.conf
    
    在http部分中添加配置信息如下:
    server {
        listen 8888;
        server_name localhost;
        location ~/group[0-9]/ {
            ngx_fastdfs_module;
        }
        error_page 500 502 503 504  /50x.html;
        location = /50x.html {
        root html;
        }
    }
    
  • List item

入到 /usr/local/nginx/sbin 启动 nginx
shell sudo ./nginx 重启命令:sudo ./nginx -s reload

使用python客户端上传测试

  1. 进入虚拟环境:workon 虚拟环境名称
  2. 进入fdfs_client-py-master.zip所在目录,用下面命令安装
    pip install fdfs_client-py-master.zip
    
    注:Windows环境下安装fdfs_client-py-master.zip需要修改里面的配置
    1. 修改 fdfs_client-py-master/fdfs_client 目录下的storage_client.py
      在这里插入图片描述
    2. 修改 fdfs_client-py-master 目录下的setup.py
      在这里插入图片描述

测试成功:

>>> from fdfs_client.client import Fdfs_client
>>> client = Fdfs_client('/etc/fdfs/client.conf')
>>> ret = client.upload_by_filename('test')
>>> ret
{'Group name':'group1','Status':'Upload successed.', 'Remote file_id':'group1/M00/00/00/
	wKjzh0_xaR63RExnAAAaDqbNk5E1398.py','Uploaded size':'6.0KB','Local file name':'test'
	, 'Storage IP':'192.168.243.133'}
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/michael_xwb/article/details/90267890
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-28 00:32:42
  • 阅读 ( 1347 )
  • 分类:Go Web框架

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢