FastDFS(Fast Distributed File System)作为国内分布式文件系统,开源、轻量,对上传、下载支持比较好,国内用户群还是比较受众的,但是在部署安装过程中可能需要花费很多精力,本文主要是让小白能顺利完成单节点的安装、部署。
Tracker server作用是负载均衡和调度,通过Tracker server在文件上传时可以根据一些策略找到Storage server提供文件上传服务。
Storage server作用是文件存储,客户端上传的文件最终存储在Storage服务器上,Storage server没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将storage称为存储服务器。
名称 | 版本 |
---|---|
libfastcommon | V1.0.43 |
fastdfs | V5.11 |
fastdfs-nginx-module | V1.20 |
nginx | V1.17.9 |
其中,fastdfs和fastdfs-nginx-module需要版本进行对应,如果没有对应上会出现编译错误。
下载文件,拷贝至/usr/local
目录下
后面的安装都是基于编译安装的,因此gcc语言编译器成为必须,如果没有gcc,make命令是找不到的。一般情况下默认自带
yum -y install gcc-c++
cd /usr/local/
tar zxvf libfastcommon-1.0.43.tar.gz
cd /usr/local/libfastcommon-1.0.43
./make.sh
tar -zxvf fastdfs-5.11.tar.gz
mv fastdfs-5.11 fastdfs
cd fastdfs
vim make.sh
修改TARGET_CONF_PATH=/home/conf/fdfs
./make.sh
cd /home/conf/fdfs/
mv client.conf.sample client.conf
mv storage.conf.sample storage.conf
mv storage_ids.conf.sample storage_ids.conf
mv tracker.conf.sample tracker.conf
mkdir -p /home/data/fdfs
mkdir -p /home/data/fdfs/storage
mkdir -p /home/data/fdfs/storage/storage_info
mkdir -p /home/data/fdfs/storage/storage_data
mkdir -p /home/data/fdfs/storage/storage_data/data
mkdir -p /home/data/fdfs/client
修改tracker.conf
中参数
参数 | 位置 | 默认值 | 修改值 | 备注 |
---|---|---|---|---|
port | 11行 | 22122 | 22122 |
|
base_path | 22行 | /home/yuqing/fastdfs | /home/data/fdfs/trackerData |
|
store_group | 53行 | group2 | group2 | |
http.server_port | 260行 | 8080 | 7090 |
建议修改,防止端口冲突 |
修改storage.conf
中参数
参数 | 位置 | 默认值 | 修改值 | 备注 |
---|---|---|---|---|
group_name | 11行 | group1 | group1 | |
port | 24行 | 23000 | 23000 |
|
base_path | 41行 | /home/yuqing/fastdfs | /home/data/fdfs/storage/storage_info | |
store_path_count | 105行 | 1 | 1 | |
store_path0 | 109行 | /home/yuqing/fastdfs | /home/data/fdfs/storage/storage_data | |
tracker_server | 118行 | 192.168.209.121:22122 | 192.168.3.136:22122 |
|
http.server_port | 284行 | 8888 | 7091 |
建议修改,防止端口冲突 |
修改client.conf
中参数
参数 | 位置 | 默认值 | 修改值 | 备注 |
---|---|---|---|---|
base_path | 10行 | /home/yuqing/fastdfs | /home/data/fdfs/client |
|
tracker_server | 14行 | 192.168.0.197:22122 | 192.168.3.136:22122 | |
http.tracker_server_port | 58行 | 80 | 7090 |
和tracker端口对应 |
可任选一种方式:
启动Tracker
/usr/local/fastdfs/tracker/fdfs_trackerd /home/conf/fdfs/tracker.conf start
关闭Tracker
./stop.sh ./tracker/fdfs_trackerd
启动 Storage
/usr/local/fastdfs/storage/fdfs_storaged /home/conf/fdfs/storage.conf
关闭Tracker
./stop.sh ./storage/fdfs_storaged
tail -f /home/data/fdfs/trackerData/logs/trackerd.log
tail -f /home/data/fdfs/storage/storage_info/logs/storaged.log
客户端测试上传
cd /usr/local/fastdfs/client/
上传图片测试./fdfs_test /home/conf/fdfs/client.conf upload /home/timg.jpg
上传完之后,可在/home/data/fdfs/storage/storage_data/data
里看到上传文件
tar -zxvf fastdfs-nginx-module-1.20.tar.gz
cp -rf /usr/local/fastdfs/conf/mime.types /home/conf/fdfs/
cp -rf /usr/local/fastdfs/conf/http.conf /home/conf/fdfs/
cp -rf /usr/local/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /home/conf/fdfs/
修改config参数:
cd /usr/local/fastdfs-nginx-module-1.20/src/
vim config
参数 | 位置 | 默认值 | 修改值 | 备注 |
---|---|---|---|---|
ngx_module_incs | 6行 | /usr/local/include | /usr/include/fastdfs /usr/include/fastcommon | |
CORE_INCS | 15行 | /usr/local/include | /usr/include/fastdfs /usr/include/fastcommon | |
CFLAGS | 10行 17行 | /etc/fdfs/mod_fastdfs.conf | /home/conf/fdfs/mod_fastdfs.conf |
修改mod_fastdfs.conf参数:
cd /home/conf/fdfs
vim mod_fastdfs.conf
参数 | 位置 | 默认值 | 修改值 | 备注 |
---|---|---|---|---|
base_path | 10行 | /tmp | /home/data/fdfs/storage/storage_data | |
tracker_server | 40行 | tracker:22122 | 192.168.3.136:22122 | |
store_path0 | 62行 | /home/yuqing/fastdfs | /home/data/fdfs/storage/storage_data | |
url_have_group_name | 53行 | false | true |
tar -zxvf nginx-1.17.9.tar.gz
cd nginx-1.17.9
./configure --prefic=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module-1.20/src
make && make install
启动、验证、测试nginx
cd /usr/local/nginx/sbin
./nginx
ps -ef|grep nginx
配置nginx.conf
server {
listen 9999;
server_name localhost;
location ~/group([0-9])/{
root /home/data/fdfs/storage/storage_data/data
ngx_fastdfs_module;
}
}
http://192.168.3.136:7777/group1/M00/00/00/文件名称
可验证是否可以访问文件。