0%

Fastdfs安装说明

单机安装版

版本

Centos版本:6.10

tracker和storage使用相同的安装包,下载地址:http://sourceforge.net/projects/FastDFS/https://github.com/happyfish100/fastdfs(推荐)

本教程使用:
https://github.com/happyfish100/fastdfs 版本V6.06

FastDFS安装环境

FastDFS是C语言开发,建议在linux上运行,centos7.x

安装FastDFS需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++

安装libevent

FastDFS依赖libevent库,需要安装:

yum -y install libevent

安装libfastcommon

libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS运行所需要的一些基础库。

到软件包目录下载libfastcommon

1
2
3
git clone https://github.com/happyfish100/libfastcommon.git --depth 1
cd libfastcommon/
./make.sh && ./make.sh install #编译安装

fastdfs安装(源码编译安装)

1
2
3
4
cd ../ #返回上一级目录
git clone https://github.com/happyfish100/fastdfs.git --depth 1
cd fastdfs/
./make.sh && ./make.sh install #编译安装

默认安装方式安装后的相应文件与目录:

服务脚本:
/etc/init.d/fdfs_storaged
/etc/init.d/fdfs_trackerd

配置文件
/etc/fdfs/http.conf
/etc/fdfs/tracker.conf
/etc/fdfs/client.conf

/etc/fdfs/storage.conf
/etc/fdfs/mime.types
/etc/fdfs/storage_ids.conf

命令工具在 /usr/bin/ 目录下:

nginx安装(源码编译安装)

版本:1.16.1

此处nginx用于storage服务,解决同步延时问题和提供http的访问

1
2
3
wget http://nginx.org/download/nginx-1.16.1.tar.gz #下载nginx压缩包
tar -zxvf nginx-1.16.1.tar.gz #解压
cd nginx-1.16.1/

#使用默认配置nginx

1
# ./configure

#编译

1
# make

#安装

1
# make install

nginx常用目录:
安装目录:/usr/local/nginx/
配置文件路径:/usr/local/nginx/conf/nginx.conf
日志路径: /usr/local/nginx/logs/

查看nginx的版本及模块:
/usr/local/nginx/sbin/nginx -V

安装配置fastdfs-nginx-module模块

版本:1.22

#下载地址: https://codeload.github.com/happyfish100/fastdfs-nginx-module/tar.gz/V1.22

1
# tar -zxvf  fastdfs-nginx-module-1.22.tar.gz

编辑 fastdfs-nginx-module-1.22/src/config 文件

改变的文件内容
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

配置nginx,添加fastdfs-nginx-module 模块:

1
2
# 先停掉nginx服务 如果没有配置为服务 则使用 
/usr/local/nginx/sbin/nginx -s stop

#进入nginx源码目录

1
cd /usr/local/src/nginx-1.16.1/

#添加fastdfs-nginx-module 模块

1
2
3
4
5
6
7
[root@localhost nginx-1.16.1]#./configure  --add-module=/opt/fastdfs-nginx-module-1.22/src/

#重新编译安装nginx

[root@localhost nginx-1.16.1]# make

[root@localhost nginx-1.16.1]# make install

#验证是否加载fastdfs-nginx-module模块是否 ,有如下标记部分表示成功

1
/usr/local/nginx/sbin/nginx -V

nginx version: nginx/1.16.1

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)

configure arguments: --add-module=/opt/fastdfs-nginx-module-1.22/src/

复制 fastdfs-nginx-module 源码中的配置文件 mod_fastdfs.conf 到/etc/fdfs 目录, 并修改

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

修改如下配置,其它默认

1
2
3
4
5
6
7
tracker_server=192.168.0.200:22122

group_name=group1

url_have_group_name = true

store_path0=/home/fastdfs

tracker配置

安装成功后进入/etc/fdfs目录:

修改tracker.conf

1
2
3
4
vim tracker.conf
#需要修改的内容如下
port=22122 # tracker服务器端口(默认22122,一般不修改)
base_path=/home/fastdfs/ # 存储日志和数据的根目录,可根据实际路径替换

如果显示磁盘空间不足,修改如下内容或者修改base_path相关路径地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# reserved storage space for system or other applications.

# if the free(available) space of any stoarge server in

# a group <= reserved_storage_space, no file can be uploaded to this group.

# bytes unit can be one of follows:

### G or g for gigabyte(GB)

### M or m for megabyte(MB)

### K or k for kilobyte(KB)

### no unit for byte(B)

### XX.XX% as ratio such as: reserved_storage_space = 10%

reserved_storage_space = 10%

storage配置

进入/etc/fdfs目录:

vim storage.conf
#需要修改的内容如下

1
2
3
4
5
6
group_name = group1 此存储服务器属于的组名
port=23000 # storage服务端口(默认23000,一般不修改)
base_path=/home/fastdfs/ # 数据和日志文件存储根目录,可根据实际路径替换
store_path0 = /home/fastdfs # 第一个存储目录,可根据实际路径替换(默认值是base_path,推荐修改)
tracker_server= 172.17.171.228:22122 # tracker服务器IP和端口(根据实际ip替换)
http.server_port=8888 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致

client配置

1
2
3
4
vim /etc/fdfs/client.conf
#需要修改的内容如下
base_path = /home/fastdfs #与storage中的一致
tracker_server = 172.17.171.228:22122 #tracker服务器IP和端口

nginx配置

#配置nginx.config
vim /usr/local/nginx/conf/nginx.conf
#修改如下红色配置,在server中添加location配置

1
2
3
4
5
6
7
server {
listen 8888;
server_name 172.17.171.228;
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
}}

启动

Tracker命令 [start | stop | restart]

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

storage命令[start | stop | restart]

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

Nginx命令stop, quit, reopen, reload

/usr/local/nginx/sbin/nginx -s reload

监测启动情况查看

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

查看日志

tail -n10 /home/fastdfs/logs/trackerd.log #base_path对应的目录下logs

tail -n10 /home/fastdfs/logs/storaged.log #base_path对应的目录下logs

#如果日志显示有错误信息,需要根据信息来查找错误原因

设置开机自动启动。

[root@tracker FastDFS]# vim /etc/rc.d/rc.local

将运行命令行添加进文件:

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

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

/usr/local/nginx/sbin/nginx -s reload

测试

#测试上传比如nginx-1.16.1.tar.gz文件,返回ID表示成功 如:group1/M00/00/00/xx.tar.gz
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/nginx-1.16.1.tar.gz
#测试下载,用外部浏览器访问刚才已传过的文件,引用返回的ID
http://xxx:8888/group1/M00/00/00/xxx.tar.gz