文件服务器 之 FastDFS

7 篇文章 0 订阅

项目背景

  • 用例场景,企业或个人认证,涉及到大量图片资料上传。
  • 当前是将用户的图片上传到项目的中的一个文件夹下

存在的问题

  • 图片存储路径位于项目路径下,导致每次发版时,需格外小心注意该文件夹的数据迁移
  • 图片没有分目录存储,导致一个目录中图片数量太大,造成图片查找效率低下,严重拖垮系统性能。
  • 图片安全性问题,该文件夹直接由servlet容器发布到互联网上,而且图片访问名称没有经过加密,很容易被推断出来,从而导致用户数据泄露。

FastDFS

什么是FastDFS

核心架构

  • Tracker集群
    负责分发存储请求,路由图片请求。
  • Storage集群
    负责存储、备份图片

linux 下搭建 FastDFS

  • 安装包(包括nginx)下载 百度云
  • 安装libevent工具包(FastDFS依赖的库)
    • yum -y install libevent
  • 安装libfastcommon(libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS运行所需要的一些基础库。)
    • 解压 tar -zxvf libfastcommon-1.0.7
    • cd libfastcommon-1.0.7
    • ./make.sh
    • ./make.sh install 安装
    • cd /usr/lib64/
    • ll | grep '.*fast.*so' 查看 libfastcommon.so
    • cp libfastcommon.so ../lib/ 复制一份至lib下
  • 安装FastDFS的Tracker
    • tar xzvf FastDFS_v5.05.tar.gz 解压FastDfs
    • cd FastDFS
    • ./make.sh 编译
    • ./make.sh install 安装
    • cp conf/* /etc/fdfs/ 拷贝配置文件
  • 配置Tracker

    • mkdir -p /home/tracker/fastdfs 创建日志目录(可以自定义)
    • vim /etc/fdfs/tracker.conf修改日志目录,或运行端口为base_path=/home/tracker/fastdfs
    • /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf 启动tracker
      • /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart 如果需要再次启动,使用此命令
  • 设置开机启动Tracker

    • vim /etc/rc.d/rc.local
    • /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart 添加该命令

  • 安装FastDFS的Storage(如需在不同机器安装Storage需重复Tracker的安装步骤,此例中 安装在一台服务器)
  • 配置 Stroage

    • mkdir -p /home/storage/fastdfs 创建日志目录
    • vim /etc/fdfs/storage.conf
      • 修改日志目录base_path=/home/storage/fastdfs
    • mkdir -p /home/fastdfs/storage 创建存储目录(可配置多个store_path1=.....
      • 修改存储目录store_path0=/home/fastdfs/storage
    • tracker_server=172.26.2.1:22122 配置tracker的IP与端口(根据自己IP和端口配置,可配置多个)
  • 启动Storage

    • /usr/bin/fdfs_storaged /etc/fdfs/storage.conf 重启,在该命令后添加 restart命令
  • 配置开机启动Storage
    • vim /etc/rc.d/rc.local
    • /usr/bin/fdfs_storaged /etc/fdfs/storage.conf 添加该命令

  • 配置客户端测试FastDFS
  • mkdir -p /home/client/fastdfs创建客户端日志目录
  • vim /etc/fdfs/client.conf
    • 修改日志目录 base_path=/home/fastdfs
    • 修改tracker地址tracker_server=172.26.2.1:22122
  • 创建测试文件vim /home/test.txt, 输入内容并保存退出。
  • 测试上传文件 /usr/bin/fdfs_test /etc/fdfs/client.conf upload /home/test.txt
  • 打开返回的图片路径查看结果 vim /home/fastdfs/storage/data/00/00/rBoCAVjaHCmAclTtAAAAFPmPj8E157_big.txt

### Nginx 安装

  • 安装PCRE
    • (Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
    • yum install -y pcre pcre-devel
  • 安装 zlib
    • zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
    • yum install -y zlib zlib-devel
  • 安装openssl

    • OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
      nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。

    • yum install -y openssl openssl-devel

  • 解压Nginx
    • tar -zxvf nginx-1.8.0.tar.gz
  • 配置 nginx 安装项命令如下,注意最后一行添加FastDFS-nginx-module模块,注意修改路径为你解压的路径

    ./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=/你的解压路径/fastdfs-nginx-module/src
    
  • 上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录

  • 编译

    • make
  • 安装

    • make install
  • 启动

    • /usr/local/nginx/sbin/nginx
  • 停止服务
    • /usr/local/nginx/sbin/nginx -s stop

FastDFS与Nginx

使用Nginx提供http服务,将图片发布出去。FastDFS推荐使用Nginx,并提供了Ngix的插件。

  • 解压 FastDFS-nginx-module_v1.16.tar.gz
    • tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
  • 修改配置文件
    • vim /opt/fastdfs/fastdfs-nginx-module/src/config
    • 修改config文件将所有的/usr/local/路径改为/usr/
  • 复制配置文件
    • cd /opt/fastdfs/fastdfs-nginx-module/src/
    • cp mod_fastdfs.conf /etc/fdfs/
  • 修改mod_FastDFS.conf的内容

    • vi /etc/fdfs/mod_fastdfs.conf
    • 修改fastdfs目录 base_path=/home/fastdfs
    • 配置 tracker位置,可配置多行tracker_server=192.168.101.3:22122
    • url中包含group名称 url_have_group_name=true
    • 指定文件存储路径store_path0=/home/FastDFS/fdfs_storage
  • 将libfdfsclient.so拷贝至/usr/lib下

    • cp /usr/lib64/libfdfsclient.so /usr/lib/
  • 创建nginx/client目录

    • mkdir -p /var/temp/nginx/client
  • 配置nginx

    • cd /usr/local/nginx/conf
    • vim nginx.conf
    • 新增server

      server {
              listen       80;
              server_name  ngix所在服务器ip;
      
              location /group1/M00/{
      
      #root /home/FastDFS/fdfs_storage/data;
      
      ngx_fastdfs_module;
              }
      }
      
  • 重新启动nginx

    • /usr/local/nginx/sbin/nginx -s stop
    • /usr/local/nginx/sbin/nginx
  • 再次上传test.txt

    • /usr/bin/fdfs_test /etc/fdfs/client.conf upload /home/test.txt
    • 访问返回的url地址 http://nginx的ip/group1/M00/00/00/rBoCAVjaS5SATJaGAAAAFPmPj8E239_big.txt

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Linux服务器上部署FastDFS,可以按照以下步骤进行操作: 1. 下载FastDFS安装包并解压缩:使用命令`./fdfs_test /etc/fdfs/client.conf upload /home/software/dzq.jpg`来上传文件FastDFS服务器。首先,需要准备或下载FastDFS的安装包。 2. 创建并进入指定文件夹:使用命令`mkdir -p /data/fastdfs cd /data/fastdfs`来创建并进入指定的文件夹。 3. 配置mod_fastdfs.conf文件:使用命令`vim mod_fastdfs.conf`打开配置文件,然后根据自己的需求进行配置。例如,设置`base_path`为FastDFS的临时目录,`tracker_server`为FastDFS的跟踪服务器地址,`group_name`为FastDFS的存储组名,`url_have_group_name`为true以在URL中包含组名,`store_path0`为FastDFS的存储路径。 4. 启动FastDFS服务:使用命令`/usr/local/fastdfs/storage`来启动FastDFS服务。 通过以上步骤,您就可以在Linux服务器上成功部署FastDFS了。请确保按照指导进行操作,并根据实际情况进行相应的配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Linux环境下fastdfs部署](https://blog.csdn.net/LBWNB_Java/article/details/126673693)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [linux离线部署fastdfs](https://blog.csdn.net/weixin_44470298/article/details/123830999)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值