Linux搭建FastDFS(本地服务器和云服务器适用)

Tia ·
更新时间:2024-11-15
· 761 次阅读

前言

使用FastDFS文件服务器分为三步。

第一步·FastDFS系统环境搭建

第二步·开启端口

第三步·配置 Nginx 模块及访问测试
其实本地服务器和云服务器的安装方式是一样的就是配置ip的时候 云服务器需要写成公网ip

正文 介绍

FastDFS 系统有三个角色,跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。

话不多说开始吧!
对了如果发生了什么错误可以在文章尾部查看有没有类似错误!!!

1 安装软件

以下软件在安装fastdfs都可能用的到,为了防止安装时报错我们全部安装。

yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget 2 开放端口

开放22122和23000端口,如果是云服务器那就用云服务的开放端口方式开放。

#开放端口 sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --add-port=22122/tcp --permanent sudo firewall-cmd --add-port=23000/tcp --permanent sudo firewall-cmd --add-port=80/tcp --permanent #重启防火墙 sudo firewall-cmd --reload #查看端口开放状态 sudo firewall-cmd --list-all 3 下载安装包并安装

建议把这些安装包放在统一的位置用来管理。

创建一个安装包的目录

mkdir /usr/soft cd /usr/soft 3.1 libfastcommon

下载libfastcommon

wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz

解压到 /usr/local 目录下

tar -zxvf V1.0.7.tar.gz -C /usr/local/

编译并安装

cd /usr/local/libfastcommon-1.0.7 #切换目录 ./make.sh #编译 ./make.sh install #安装

编译成功:
libfastcommon编译成功

安装成功:
libfastcommon安装成功

3.2 FastDFS

下载FastDFS安装包

cd /usr/soft/ wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

解压FastDFS

tar -zxvf V5.05.tar.gz -C /usr/local/

编译并安装

cd /usr/local/fastdfs-5.05 #切换目录 ./make.sh #编译 ./make.sh install #安装

编译成功,后部分截图:
fastdfs编译成功
安装成功:
fastdfs安装成功

4配置文件 4.1 Tracker 服务 cd /etc/fdfs/ #进入目录 cp tracker.conf.sample tracker.conf #拷贝一份文件 vi tracker.conf #编辑拷贝后的文件

编辑内容(这里教大家如何快速的找到这些配置,进入命令模式 输入斜杆后面接上搜索内容 回车就可以帮你找了,n是下一个 N是上一个)
在这里插入图片描述

#配置安装位置 base_path=/home/yuqing/fastdfs #配置端口 http.server_port=8070

创建Tracker 工作目录

mkdir -p /home/yuqing/fastdfs

启动Tracker

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start #启动 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart #重新启动

查看Tracker启动是否启动

ps -ef|grep fdfs netstat -lnpt|grep fdfs

Tracker启动

4.2 Storage 服务 cd /etc/fdfs/ #切换目录 cp storage.conf.sample storage.conf #拷贝配置文件 vi storage.conf #修改拷贝后的文件

修改内容(这里的ip就别跟着我写了,根据自己的ip来填)

#数据和日志的存放位置 base_path=/home/yuqing/fastdfs #配置组名 group_name=group1 #此处可以配置多个路径,如:store_path0=xx, store_path1=xx,store_path2=xx #多个项目的文件按照文件夹分割,通过/usr/bin/fdfs_upload_file [storage_ip:port] [store_path_index] #选择storage服务器和store_path角标上传到相应的项目下 store_path0=/home/yuqing/fastdfs #配置ip和端口(如果是云服务器就写公网ip) tracker_server=192.168.130.4:22122 #修改端口 http.server_port=8888

运行Storage

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

查看运行状态

netstat -lnpt|grep fdfs 4.3 配置client,测试上传文件 cd /etc/fdfs/ cp client.conf.sample client.conf vi client.conf

修改内容

#基本路径 base_path=/home/yuqing/fastdfs #配置ip和端口(跟配置Storage服务的时候一样的) tracker_server=192.168.130.4:22122 5 测试fastdfs

我这边在/usr/soft/ 下放了一个dog.jpg的图片

添加图片

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/soft/dog.jpg

看到下图,表示我们添加图片成功了,红线处表示保存的路径!
保存图片成功

6 安装Nginx(有的就忽略)

安装gcc

yum -y install gcc

安装pcre 和 pcre-devel

yum install -y pcre pcre-devel

安装zlib 和 zlib-devel

yum install -y zlib zlib-devel

安装openssl 和 openssl-devel

yum install -y openssl openssl-devel

切换目录到usr/soft

cd /usr/soft

拉取安装包

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

解压到/usr/local/ 目录下

tar -zxvf nginx-1.9.9.tar.gz -C /usr/local/

找到解压目录,编译并安装(可以先不执行)

cd /usr/local/nginx-1.9.9/ ./configure make make install

启动nginx(可以先不执行)

cd /usr/local/nginx/sbin #切换目录 ./nginx #启动 ./nginx -s stop #停止 ./nginx -s reload #重启 7 fastdfs-nginx-module插件

下载fastdfs-nginx-module_v1.16.tar.gz

cd /usr/soft/ wget https://nchc.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz

解压fastdfs-nginx-module_v1.16.tar.gz

tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/

修改fastdfs-nginx-module的配置文件

#进入目录 cd /usr/local/fastdfs-nginx-module/src/ vi config

config的修改内容,把包含local目录全删了

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\"'"

将mod_fastdfs.conf拷贝到 /etc/fdfs

cp /usr/local/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

编辑 mod_fastdfs.conf

vi /etc/fdfs/mod_fastdfs.conf

修改内容

base_path=/home/yuqing/fastdfs #tracker_server=192.168.130.5:22122 #(多个tracker配置多行) tracker_server=192.168.130.4:22122 #url中包含group名称 url_have_group_name=true #指定文件存储路径(上面配置的store路径) store_path0=/home/yuqing/fastdfs

将/usr/lib64/libfdfsclient.so 复制到 /usr/lib/

cp /usr/lib64/libfdfsclient.so /usr/lib/

配置 nginx 安装,加入fastdfs-nginx-module模块

#切换目录 cd /usr/local/nginx-1.9.9/ #配置 nginx 安装 ./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module/src/

编译并安装

make #编译 make install #安装

将解压后的nginx启动器复制到生成的nginx目录中(肯定有重复的,它提示你就输入 yes 然后回车)

cp /usr/local/nginx-1.9.9/objs/nginx /usr/local/nginx/sbin/nginx

修改--------------------------------------开头
启动nginx

/usr/local/nginx/sbin/nginx

修改-------------------------------------结尾

我们需要把fastdfs-5.05下面的配置中还没有存在/etc/fdfs中的拷贝进去

cd /usr/local/fastdfs-5.05/conf/ cp anti-steal.jpg http.conf mime.types /etc/fdfs/

编辑nginx.conf

cd /usr/local/nginx/conf vi nginx.conf

修改内容,data这个位置根据自己配置的来

pid /usr/local/nginx/logs/nginx.pid; location /group1/M00 { root /home/yuqing/fastdfs/data; ngx_fastdfs_module; }

修改内容
修改内容

重新启动nginx

cd /usr/local/nginx/sbin ./nginx -s stop #停止 ./nginx #启动

在拿取刚才保存文件成功的路劲去我们浏览器访问一下,可以看到成功了!
在这里插入图片描述

8 错误 8.1 文件上传失败错误 如果图片上传不成功报:

上传失败
如果你的也是这个错误,你可以去看看日志。日志路劲就是在我们Storage服务的配置文件中时候填写进去的store_path0=/***/***
查找日志
我的在/home/yuqing/fastdfs ,就打开这个目录

cd /home/yuqing/fastdfs #可以查看到两个目录,一个data一个logs(日志在logs) ls #进入日志目录 cd logs

logs
查看trackerd日志

cat trackerd.log #查看所有 tail trackerd.log #查看后面部分

可以看到日志中在报ip的错误 ,经过我们确认Storage.conf 和client.conf它们ip都是写的192.168.130.5
怎么会是192.168.130.4呢?
报错
这个时候我们去data目录下看看 .data_init_flag 这个隐藏文件

#进入目录 cd /home/yuqing/fastdfs/data/ #查找隐藏文件 .data_init_flag ls -la |grep .data_init_flag

找到了文件
找到文件
查看文件,大家看到我标红的哪里,假如ip跟配置的不一致,我们就删除掉.data_init_flag
(我这里是改正过的所以ip是192.168.130.5 ,我这里之前是192.168.130.4 ,然后我删除了这个隐藏文件 重新运行了一下Storage服务和Tracker服务,然后添加图片就成功了)

cat .data_init_flag

查看

8.2 访问文件错误

我也是根据下面的方案来解决的:

如果保存图片成功了,访问失败了; 第一先检查端口是否该开放的是否开放; 第二检查nginx配置是否正确,就那个访问路径; 第三检查mod_fastdfs.conf配置文件; 第三重启nginx,建议彻底停止在重启一遍。 结尾

好了结束了,关于这方面我找了很多资料,他们的都不怎么完整,于是我才想自己写一篇


作者:weixin_43692998



Linux 云服务器 服务器 fastdfs

需要 登录 后方可回复, 如果你还没有账号请 注册新账号