快捷搜索:  汽车  科技

fastdfs使用步骤(FastDfs-简介与安装)

fastdfs使用步骤(FastDfs-简介与安装)我下载的是:fastdfs-5.12.tar.gz# 创建并进入目录 mkdir /opt/softpkg -p && cd /opt/softpkg/ # 删除文件到该目录并解压 tar -zxvf libfastcommon-1.0.50.tar.gz # 编译安装 cd libfastcommon-1.0.50 && ./make.sh && ./make.sh install安装fastdfs离线下载地址:https://github.com/happyfish100/fastdfs/tags4、CentOS7安装FastDFSyum install git gcc gcc-c make automake vim wget libevent -y安装libfastcommon基础库离线下载地址:https://github.com/happyfish100/libfastcom

1、什么是fastdfs

fastdfs是使用c语言编写的开源轻量级分布式文件系统,有文件存储,同步,上传,下载等功能。解决了大容量存储和负载均衡的问题。适用于相册网站,视频网站等。

2、fastdfs有哪些优缺点

  • 分组存储,节点对等,不存在单点,操作简单
  • 文件不分块,整块文件直接存储在操作系统上
  • 文件ID由fastdfs生成,作为访问凭证。通过web server(nginx apache等扩展模块)
  • 适用于中小文件,支持在线扩容等
  • 存储服务器可以保存文件元数据(meta-data) V2.0采用libevent,支持高并发,性能更好。
  • 下载文件支持多线程,支持断点续传等

3、fastdfs组成

fastdfs使用步骤(FastDfs-简介与安装)(1)

  • 客户端(Client)
  • 作为请求的发起方,通过接口或者TCP/IP与Tracker或Storage交互
  • 跟踪服务器(Tracker)
  • 作为负载均衡和调度,通过Tracker时或根据一些策略找到一台Storage进行上传下载等,各个跟踪节点之间是对等节点,可以在线扩容缩容
  • 存储服务器(Storage)
  • 存储文件的服务器,Storage并没有实现自己的文件系统,而是直接使用操作系统进行文件管理。也正是因为如此,上传的文件并不会做合并或者分割的处理。

4、CentOS7安装FastDFS

  • 依赖安装

yum install git gcc gcc-c make automake vim wget libevent -y

  • 安装libfastcommon基础库

离线下载地址:https://github.com/happyfish100/libfastcommon/tags

我下载的是:libfastcommon-1.0.50.tar.gz

# 创建并进入目录 mkdir /opt/softpkg -p && cd /opt/softpkg/ # 删除文件到该目录并解压 tar -zxvf libfastcommon-1.0.50.tar.gz # 编译安装 cd libfastcommon-1.0.50 && ./make.sh && ./make.sh install

  • 安装fastdfs

离线下载地址:https://github.com/happyfish100/fastdfs/tags

我下载的是:fastdfs-5.12.tar.gz

# 解压文件 tar -zxvf fastdfs-5.12.tar.gz # 编译安装 cd fastdfs-5.12 && ./make.sh && ./make.sh install

  • tracker配置

# 拷贝配置文件 cd /etc/fdfs && cp client.conf.sample client.conf && cp storage_ids.conf.sample storage_ids.conf && cp tracker.conf.sample tracker.conf && cp storage.conf.sample storage.conf

编辑配置文件 vim tracker.conf

#需要修改的内容如下 port=22122 # tracker服务器端口(默认22122 一般不修改) base_path=/home/dfs # 存储日志和数据的根目录

  • storage配置

#需要修改的内容如下 port=23000 # storage服务端口(默认23000 一般不修改) base_path=/home/dfs # 数据和日志文件存储根目录 store_path0=/home/dfs # 第一个存储目录 tracker_server=192.168.244.128:22122 # 服务器1 如果有多个,复制多行修改ip即可 http.server_port=8888 # http访问文件的端口(默认8888 看情况修改 和nginx中保持一致)

  • 启动fastdfs

# 创建存放数据的目录 mkdir /home/fastdfs -p # 启动tracker fdfs_trackerd /etc/fdfs/tracker.conf restart # 启动storage fdfs_storaged /etc/fdfs/storage.conf restart # 安装网络插件,如果没有netstat命令 yum install -y net-tools # 查看端口是否启动 netstat -ntlp |grep 22122;netstat -ntlp |grep 23000

  • client测试上传

修改配置文件 vim /etc/fdfs/client.conf

#需要修改的内容如下 base_path=/home/moe/dfs tracker_server=192.168.244.128:22122 # 服务器1,如果有多个,复制多行修改ip即可 #保存后测试 返回ID表示成功 如:group1/M00/00/00/xx.jpg fdfs_upload_file /etc/fdfs/client.conf /opt/test/text.jpg

fastdfs使用步骤(FastDfs-简介与安装)(2)

  • 安装fastdfs-nginx-module

文件上传了,我们该怎么访问呢?就是使用fastdfs-nginx-module。通过nginx实现web端的访问

因为fastdfs是存储的原始文件在磁盘,数据又是放在一个一个的组。所以只要nginx能够代理到耨个组下,那么加上返回的文件id 就可以访问静态资源了。

离线下载地址:https://github.com/happyfish100/fastdfs-nginx-module/tags

我下载的是:fastdfs-nginx-module-1.20.tar.gz

# 上传并解压文件 tar -zxvf fastdfs-nginx-module-1.20.tar.gz # 拷贝配置文件到/etc/fdfs # http相关配置文件 cp /opt/softpkg/fastdfs-5.12/conf/http.conf /etc/fdfs && cp /opt/softpkg/fastdfs-5.12/conf/mime.types /etc/fdfs # fastdfs-nginx-module配置文件 cp /opt/softpkg/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs

fastdfs使用步骤(FastDfs-简介与安装)(3)

修改config文件

ngx_addon_name=ngx_http_fastdfs_module if test -n "${ngx_module_link}"; then ngx_module_type=HTTP ngx_module_name=$ngx_addon_name ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/" ngx_module_libs="-lfastcommon -lfdfsclient" ngx_module_srcs="$ngx_addon_dir/ngx_http_fastdfs_module.c" ngx_module_deps= CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'" . auto/module else HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module" NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c" CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/" CORE_LIBS="$CORE_LIBS -lfastcommon -lfdfsclient" CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'" fi

修改mod_fastdfs.conf

#需要修改的内容如下 tracker_server=192.168.244.128:22122 # url中时候带group的名字 url_have_group_name=true store_path0=/home/fastdfs

  • 安装nginx

离线下载地址:https://nginx.org/download/

我下载的是 nginx-1.15.6.tar.gz

# 创建临时目录 mkdir -p /var/temp/nginx/client # 安装依赖 yum install -y pcre-devel openssl openssl-devel # 解压 tar -zxvf nginx-1.15.6.tar.gz # 编译安装 cd nginx-1.15.6 ./configure --add-module=/opt/softpkg/fastdfs-nginx-module-1.21/src make && make install # 查看nginx版本 /usr/local/nginx/sbin/nginx -V

配置nginx

打通nginx对fastdfs的访问

vim /usr/local/nginx/conf/nginx.conf

server { # 监听端口,和storage中的http.server_port一致 listen 8888; server_name 192.168.244.128; location ~/group[0-9]/ { ngx_fastdfs_module; } }

启动nginx

/usr/local/nginx/sbin/nginx

  • 测试访问

# 首先关闭防火墙 systemctl disable firewalld systemctl stop firewalld # 重新上传一个文件,返回一个id为:group1/M00/00/00/wKj0gGIlfieARgIMAABDhrJAkTU463.jpg fdfs_upload_file /etc/fdfs/client.conf /opt/test/text.jpg # 使用http fileId访问 http://192.168.244.128:8888/group1/M00/00/00/wKj0gGIlfieARgIMAABDhrJAkTU463.jpg

访问结果

fastdfs使用步骤(FastDfs-简介与安装)(4)

猜您喜欢: