一、环境准备
下载FastDFS安装包:
FastDFS下载地址:https://github.com/happyfish100/
libfatscommon:FastDFS分离出的一些公用函数包
FastDFS:FastDFS本体
fastdfs-nginx-module:FastDFS和nginx的关联模块
下载Nginx安装包
下载地址:http://nginx.org/en/download....
nginx用来提供访问服务
将下载好的安装包上传到服务器上
二、开始安装
以下安装步骤tracker和storage都要执行
1、安装基础环境
yum install -y gcc gcc-c++yum -y install libevent
2、解压libfatscommon函数库
# 解压tar -zxvf libfastcommon-1.0.43.tar.gz
3、进入libfastcommon文件夹,编译并且安装
./make.sh
./make.sh install
从控制台可以看到安装目录
4、解压fastdfs主程序文件
# 解压tar -zxvf fastdfs-6.06.tar.gz
5、进入fastdfs目录,安装fastdfs主程序
./make.sh
./make.sh install
从控制台可以看到主程序的安装目录
- /usr/bin中包含了可执行文件:
- /etc/fdfs包含了配置文件:
6、将安装文件夹下的配置文件拷贝到/etc/fdfs目录下
cp /etc/FastDFS/fastdfs/fastdfs-6.06/conf/* /etc/fdfs/
7、配置tracker服务
1、说明
tracker和storage都是同一个fastdfs的主程序的两个不同概念,配置不同的配置文件就可以设定为tracker或者storage
2、配置tracker
/etc/fdfs下都是一些配置文件,配置tracker即可
vim tracker.conf
3、修改tracker配置文件中的tracker工作目录,保存数据以及日志
base_path=/usr/local/fastdfs/tracker
保存并退出,然后创建/usr/local/fastdfs/tracker目录
mkdir /usr/local/fastdfs/tracker -p
4、启动tracker服务
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
检查进程如下:
ps -ef|grep tracker
启动成功!
5、停止tracker
/usr/bin/stop.sh /etc/fdfs/tracker.conf stop
8、配置storage服务
1、修改storage配置文件
vim storage.conf
# 修改storage的工作空间base_path=/usr/local/fastdfs/storage
# 修改storage的存储空间store_path0=/usr/local/fastdfs/storage
# 修改tracker的地址和端口号,用于心跳tracker_server=192.168.0.170:22122
创建目录
mkdir /usr/local/fastdfs/storage -p
2、启动storage
启动storage欠必须先启动tracker
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
检查进程如下:
ps -ef|grep storage
启动成功!
9、测试上传
1、修改的client配置文件
vim client.conf
base_path=/usr/local/fastdfs/client
#tracker的ip根据实际tracker的ip地址配置
tracker_server=192.168.0.170:22122
创建目录
mkdir /usr/local/fastdfs/client -p
2、测试
这里以上传/etc/fdfs目录下的anti-steal.jpg文件进行测试
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/anti-steal.jpg
报错,这里是因为tracker服务器的22122端口没开放,开放端口后重新上传
上传成功!这里remote_filename显示了上传后存储目录(在前面配置的storage的store_path0=/usr/local/fastdfs/storage下),url为远程访问地址,这里还不能远程访问,配置了nginx模块后才能访问。
cd /usr/local/fastdfs/storage/data
三、配置 nginx
fastdfs安装好以后是无法通过http访问的,这个时候就需要借助nginx了,所以需要安装fastdfs的第三方模块到nginx中,就能使用了。
注:nginx需要和storage在同一个节点。
1、安装nginx插件
- 解压nginx的fastdfs压缩包
tar -zxvf fastdfs-nginx-module-1.22.tar.gz
- 进入解压后文件夹的src目录下,复制配置文件到fdfs目录下
cp mod_fastdfs.conf /etc/fdfs
- 修改/fastdfs-nginx-module/src/config文件,主要是修改路径,把local删除,因为fastdfs安装的时候我们没有修改路径,原路径是/usr:
修改后
2、安装nginx
安装步骤参考:https://segmentfault.com/a/11...
注意:配置命令与该文章中略有不同,需要增加一个fastdfs-nginx-module模块,即下面的最后一行,以实际路径为准
mkdir -p /usr/local/log/nginx/
./configure \
--prefix=/usr/local/nginx \
--pid-path=/usr/local/nginx/nginx.pid \
--lock-path=/usr/local/nginx.lock \
--error-log-path=/usr/local/nginx/log/error.log \
--http-log-path=/usr/local/nginx/log/access.log \
--add-module=/etc/FastDFS/fastdfs-nginx-module/fastdfs-nginx-module-1.22/src
make && make install
3、修改mod_fastdfs.conf配置文件
vim mod_fastdfs.conf
base_path=/usr/local/fastdfs/tmp
#tracker地址
tracker_server=trackerIP:22122
url_have_group_name = true
store_path0=/usr/local/fastdfs/storage
创建base_path目录
mkdir /usr/local/fastdfs/tmp
4、修改nginx.conf,添加如下虚拟主机:
server {
listen 8888;
server_name localhost;
location /group1/M00 {
ngx_fastdfs_module;
}
}
5、启动nginx
四、验证是否安装成功
1、上传文件
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/anti-steal.jpg
2、在浏览器中输入http:ip:nginx端口/fastFDS返回的字符串
http://10.10.183.230:8888/group1/M00/00/00/Cgq35mGXUt6AMNkYAABdreSfEnY061_big.jpg
五、异常情况
[2021-11-19 14:55:43] DEBUG - base_path=/usr/local/fastdfs/client, connect_timeout=5, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0
[2021-11-19 14:55:43] ERROR - file: tracker_proto.c, line: 50, server: 10.10.183.230:22122, response status 28 != 0
[2021-11-19 14:55:43] ERROR - file: ../client/tracker_client.c, line: 1077, fdfs_recv_response fail, result: 28
[2021-11-19 14:55:43] ERROR - file: tracker_proto.c, line: 50, server: 10.10.183.230:22122, response status 28 != 0
[2021-11-19 14:55:43] ERROR - file: ../client/tracker_client.c, line: 899, fdfs_recv_response fail, result: 28
tracker_query_storage fail, error no: 28, error info: No space left on device
原因:
报错原因 tracker.conf 配置项 reserved_storage_space = 20%
解决办法:
删除/home/用户/log日志、/root/log、/var/log