腾讯云服务器ubuntu18.04搭建FastDFS文件服务器

腾讯云服务器ubuntu18.04搭建FastDFS文件服务器

FastDFS简介

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

FastDFS文件上传流程:

Storage Server(仓库工人)定时向Tracker Server(老板)上传状态,如果客户端有请求来了,老板就会去检查当前是否有可用的storage,然后将情况反馈给客户(如果有可用的,则返回可用的storage),然后客户端进行图片上传,然后Storage Server将文件写入,然后返回文件在服务器上的相对路径给客户端,客户端将路径存入数据库进行后续操作即可。

相关的文件已经放到云盘上了,有需要的可以自取

百度云盘地址

提取码:mvo0
腾讯云服务器ubuntu18.04搭建FastDFS文件服务器_第1张图片

这是我上传到云服务器的目录(可以自己指定目录的)

腾讯云服务器ubuntu18.04搭建FastDFS文件服务器_第2张图片

下面开始搭建过程

注意:要在root权限下,否则文件可能无法解压,root权限下操作也比较方便

配置libevent库

安装libevent库(可以直接在云盘下载资源上传到云服务器,这样就可以跳过这一步直接到解压那一步)

本来以为直接使用apt就可以下载了,结果发现找不到(E: Unable to locate package libevent),centos系统直接使用yum命令就可以下载了,后来只好去官网下载来编译了,本人下的是2.1.8版本,下载完成后用xftp工具上传到云服务器

libevent官网地址

腾讯云服务器ubuntu18.04搭建FastDFS文件服务器_第3张图片

解压libevent-2.1.8-stable.tar.gz
tar -zxvf libevent-2.1.8-stable.tar.gz

进入解压后的文件夹

cd libevent-2.1.8-stable

配置目录

注意:可能会缺少gcc或cmake,缺少的话根据报错信息使用apt下载就行

./configure --prefix=/usr

编译

make

安装

make install

查看是否安装成功

ls -al /usr/lib | grep libevent

腾讯云服务器ubuntu18.04搭建FastDFS文件服务器_第4张图片

配置 libfastcommon-master

解压libfastcommon-master

unzip libfastcommon-master.zip

进入解压后的文件夹

cd libfastcommon-master

编译

./make.sh

安装

./make.sh install

复制/usr/lib64下的libfastcommon.so到/usr/lib/

cp /usr/lib64/libfastcommon.so /usr/lib/

配置fastdfs

解压fastdfs-5.11.tar-1.gz

tar -zxvf fastdfs-5.11.tar-1.gz

进入解压后的文件夹

cd fastdfs-5.11

编译

./make.sh

安装

./make.sh install

将fastdfs-5.11/conf文件夹下的所有文件复制到/etc/fdfs/

cd conf
cp * /etc/fdfs/

配置tracker服务

进到/etc/fdfs/,对tracker.conf进行修改

cd /etc/fdfs
vim tracker.conf

找到base_path,这是数据及日志的存储路径(自定义),将其修改为

base_path=/home/ubuntu/fastdfs/tracker 

创建tracker目录

mkdir /home/ubuntu/fastdfs/tracker -p

此时tracker已经配置完毕,接下来启动即可

cd /usr/bin
fdfs_trackerd /etc/fdfs/tracker.conf

配置storage服务

进到/etc/fdfs/,对storage.conf进行修改

cd /etc/fdfs/
vim storage.conf

找到base_path,这是文件存储的位置(自定义),修改为

base_path=/home/ubuntu/fastdfs/storage 

修改group_name,这是访问时的前缀名

group_name=xxx

因为storage要定时向tracker汇报,所以要修改本地的tracker_server(修改为本机IP地址即可,端口号不需要改)

tracker_server=IP:22122

创建storage目录

mkdir /home/ubuntu/fastdfs/storage  -p

storage配置完毕,进行启动

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

配置client

进到/etc/fdfs/,对client.conf进行修改

cd /etc/fdfs/
vim client.conf

将base_path改为

base_path=/home/ubuntu/fastdfs/client 

将tracker_server改为本机IP地址

创建client目录

mkdir /home/ubuntu/fastdfs/client  -p

进行文件上传测试

fdfs_test /etc/fdfs/client.conf upload 要上传的文件路径的路径

看到有文件url返回即为上传成功

腾讯云服务器ubuntu18.04搭建FastDFS文件服务器_第5张图片

文件服务器搭建好了,但是我们并不可以通过http去访问,我们需要借助nginx进行反向代理接下来需要配置nginx

配置fastdfs-nginx-module-master

fastdfs-nginx-module-master这个模块就是fastdfs与nginx之间沟通的桥梁,我们需要对它进行相应配置

解压fastdfs-nginx-module-master.zip

unzip fastdfs-nginx-module-master.zip

进入解压后的src文件夹

cd fastdfs-nginx-module-master/src

修改config,将config里面的内容全删掉,然后换成下面的内容

ngx_addon_name=ngx_http_fastdfs_module
  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 -L/usr/lib -lfastcommon -lfdfsclient"
  CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"

安装和配置nginx

安装nginx前需要安装的依赖:

apt-get install g++
apt-get install openssl libssl-dev
apt-get install libpcre3 libpcre3-dev
apt-get install zlib1g-dev

解压nginx-1.12.0.tar.gz

tar -zxvf nginx-1.12.0.tar.gz

进入解压后的目录

cd nginx-1.12.0

在命令行直接输入下面的配置指令,然后回车

注意最后一行中的–add-module=后面的路径为你的fastdfs-nginx-module-master/src目录

./configure  \
--prefix=/usr/local/nginx  \
--pid-path=/var/run/ngnix/nginx.pid  \
--lock-path=/var/lock/ngnix.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=/home/ubuntu/fastdfs/fastdfs-nginx-module-master/src

编译

make

安装

make install

将/home/tar/fastdfs-nginx-module-master/src/mod_fastdfs.conf拷贝到/etc/fdfs/

cp /home/ubuntu/fastdfs/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/

进入/etc/fdfs/对mod_fastdfs.conf进行修改

cd /etc/fdfs
vim mod_fastdfs.conf

将base_path修改为

base_path=/home/ubuntu/fastdfs/tmp

将tracker_server改为本机IP地址

将group_name改为与前面配置storage服务时一致的名字

将 url_have_group_name改为true

url_have_group_name = true

修改nginx配置文件,为其添加一个新的server配置

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

腾讯云服务器ubuntu18.04搭建FastDFS文件服务器_第6张图片

检测nginx是否配置完成

cd /usr/local/nginx/sbin
./nginx -t

发现报错提示少了一个文件夹,进行创建

mkdir /var/temp/nginx/client -p

启动nginx

./nginx

关闭防火墙

ufw disable

配置mod_fastdfs.conf

cd /etc/fdfs/
vim mod_fastdfs.conf
将store_path0改成store_path0=/home/ubuntu/fastdfs/storage

重启所有服务

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
cd /usr/local/nginx/sbin/
./nginx -s reload

成功访问到图片

你可能感兴趣的:(腾讯云服务器ubuntu18.04搭建FastDFS文件服务器)