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

前言

使用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 <config_file> <local_filename> [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,建议彻底停止在重启一遍。

结尾

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

发布了2 篇原创文章 · 获赞 2 · 访问量 94

猜你喜欢

转载自blog.csdn.net/weixin_43692998/article/details/105348221