从零构建FastDFS文件服务器

从零构件FastDFS文件服务器

FastDFS是一个分布式的文件系统,具体内容就不重点介绍了。接下来我们主要进行搭建。

一)准备工作

首先进行相关包的下载:
(1)、我用的是centos7版本,具体忘记了,新建fastdfs目录,在该目录下下载相关包;
(2)、下载fastdfs包:打开https://github.com/happyfish100/fastdfs,点击下图所示的releases,选择版本,截止博客发表时最新的是v6.0.4。在服务器上创建一个文件夹,切换到该目录下,我的是/data/wlw/fastdfs,接下来下载包。

wget  https://github.com/happyfish100/fastdfs/archive/fastdfs-6.03.tar.gz 

在这里插入图片描述在这里插入图片描述
下载成功如图所示:
在这里插入图片描述(3)、重复上述步骤在刚才/data/wlw/fastdfs中下载以下包:
fastdfs-nginx-module:

wget https://github.com/happyfish100/fastdfs-nginx-module/archive/fastdfs-nginx-module-1.22.tar.gz

libfastcommon:

wget https://github.com/happyfish100/libfastcommon/archive/libfastcommon-1.0.42.tar.gz

nginx:

wget http://nginx.org/download/nginx-1.17.6.tar.gz

下载完如图所示:
在这里插入图片描述
(4)、安装以下依赖包:

yum -y install libevent gcc-c++ pcre pcre-devel zlib zlib-devel opensll openssl-devel libpcre-dev

下载完成如下所示:
在这里插入图片描述
(5)、解压上述4个压缩包

tar -zvfx fastdfs-6.04.tar.gz
tar -zvfx fastdfs-nginx-module-1.22.tar.gz
tar -zvfx libfastcommon-1.0.42.tar.gz
tar -zvfx nnginx-1.17.6.tar.gz

(6)、安装编译libfastcommon

cd libfastcommon-1.0.42/ && ./make.sh && ./make.sh install

在这里插入图片描述
(7)、安装编译fastdfs

cd fastdfs-6.04/ && ./make.sh && ./make.sh install

但是报了如下错误:
在这里插入图片描述
在这里插入图片描述

./make.sh: line 146: perl: command not found

查了一下是说 安装perl跟perl-devel

 yum -y install perl perl-devel

再次

cd fastdfs-6.03/ && ./make.sh && ./make.sh install

如下图问题得以解决。在这里插入图片描述
(8)、复制配置到/etc/fdfs/下:

cp fastdfs-6.04/conf/* /etc/fdfs/

(9)、在/data/wlw/fastdfs下创建tracker、storage、client三个文件夹:

mkdir /data/wlw/fastdfs/tracker
mkdir /data/wlw/fastdfs/storage
mkdir /data/wlw/fastdfs/client

(10)、切换目录到/etc/fdfs,修改tracker.conf文件中的

base_path=/data/wlw/fastdfs/tracker

(11)、修改编辑storage.conf中的以下字段:

//这个是基本路径
base_path=/data/wlw/fastdfs/storage
//分组名称随便命名
group_name=glen
//这个地址和前面路径保持一致
store_path0=/data/wlw/fastdfs/storage
//这是服务器地址,端口号是默认端口,不建议修改,我这边有两个地址都写了一下
tracker_server=192.168.60.99:22122

(12)、修改编辑client.conf中的以下字段:

//这个是基本路径
base_path=/data/wlw/fastdfs/storage
//这是服务器地址,端口号是默认端口,不建议修改我这边有两个地址都写了一下
tracker_server=192.168.60.99:22122

(13)、修改fastdfs-nginx-module/src/config文件:
①、先将fastdfs-nginx-module-1.22移到nginx-1.17.6文件下,这样比较统一:

 mv /data/wlw/fastdfs fastdfs-nginx-module-1.22 /data/wlw/fastdfs/nginx-1.17.6

②、将fastdfs-nginx-module-1.22/src下mod_fastdfs.conf到/etc/fdfs下:

cp /data/wlw/fastdfs/nginx-1.17.6/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs

③、修改/etc/fdfs/mod_fastdfs.conf文件。

base_path=/data/wlw/fastdfs/storage
tracker_server=192.168.60.99:22122
group_name=group1
url_have_group_name=true

(14)、删除config文件

rm -f /data/wlw/fastdfs/nginx-1.17.6/fastdfs-nginx-module-1.22/src/config

新建config文件,vi 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

(15)、如果还出现问题,那就是版本匹配问题,好好看一下版本。
(16)、配置nginx。
1)、进入nginx目录,并引入fastdfs-nginx-module模块

cd /data/wlw/fastdfs/nginx-1.17.6
./configure --add-module=fastdfs-nginx-module-1.22/src

2)修改nginx配置文件,要注意nginx的启动配置文件是/usr/local/nginx/conf下

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

在配置文件修改两处:
①在配置文件开头处加入

user root;

在这里插入图片描述

②修改配置文件中如下内容:

server {
        listen       8888;
        server_name  192.168.60.99;

        location ~/group1/M00 {
            root /data/wlw/fastdfs/storage/data;
            ngx_fastdfs_module;
        }

因为默认80端口比较特殊,所以换成8888端口,server_name要换成你服务器的ip,不能写localhost。下面新加一个location,唯一需要改变的是root /data/wlw/fastdfs/storage/data;这一行换成你对应的地址就可以。
在这里插入图片描述

二)开始测试

(17)、启动tracker和storage服务器以及nginx。

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf

注意:以下是重启的方法

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

如图,如果监听到22122和23000端口,启动成功。
在这里插入图片描述
接下来启动nginx。通过监听8888端口,确定是否启动,以下是常用的命令

cd /usr/local/nginx/sbin
./nginx -V // 查看nginx版本
./nginx -s reload // 重新启动nginx
./nginx start // 启动nginx
./nginx stop // 关闭nginx

在这里插入图片描述
(18)、切换目录并上传测试文件,可随便传一个,如图,link.jpg即为我的测试文件。

cd /data/wlw/fastdfs

在这里插入图片描述
(19)、输入上传文件命令和查看上传文件信息命令如下图

 /usr/bin/fdfs_upload_file /etc/fdfs/client.conf link.jpg
 /usr/bin/fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/wKg8Y13wSpWAXZ9pAAHVYf-cGkU571.jpg

在这里插入图片描述
以下是相关常用命令:

// 查看集群情况
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
// 删除一个storage
/usr/bin/fdfs_monitor  /etc/fdfs/storage.conf delete group2 20.12.1.73
// 测试上传
fdfs_test /etc/fdfs/client.conf upload test.txt

(20)、配置了nginx,可以在浏览器输入ip+端口号+group1/M00/00/00/+文件码。博主如图所示:
在这里插入图片描述
到此测试成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
校园悬赏任务平台对字典管理、论坛管理、任务资讯任务资讯公告管理、接取用户管理、任务管理、任务咨询管理、任务收藏管理、任务评价管理、任务订单管理、发布用户管理、管理员管理等进行集中化处理。经过前面自己查阅的网络知识,加上自己在学校课堂上学习的知识,决定开发系统选择小程序模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问,采用的主流的Java语言这种面向对象的语言进行校园悬赏任务平台程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。校园悬赏任务平台的开发让用户查看任务信息变得容易,让管理员高效管理任务信息。 校园悬赏任务平台具有管理员角色,用户角色,这几个操作权限。 校园悬赏任务平台针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理任务信息,管理任务资讯公告信息等内容。 校园悬赏任务平台针对用户设置的功能有:查看并修改个人信息,查看任务信息,查看任务资讯公告信息等内容。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。项目管理页面提供的功能操作有:查看任务,删除任务操作,新增任务操作,修改任务操作。任务资讯公告信息管理页面提供的功能操作有:新增任务资讯公告,修改任务资讯公告,删除任务资讯公告操作。任务资讯公告类型管理页面显示所有任务资讯公告类型,在此页面既可以让管理员添加新的任务资讯公告信息类型,也能对已有的任务资讯公告类型信息执行编辑更新,失效的任务资讯公告类型信息也能让管理员快速删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值