FastDFS:是一种分布式文件系统,主要的组件是tracker和storage,工作流程如下图。
环境准备:
主机:
centos 7.x:192.168.206.135 (tracker和storage在一台主机上。)
软件包:
libfastcommonV1.0.7.tar.gz
FastDFS_v5.05.tar.gz
fastdfs-nginx-module_v1.16.tar.gz
nginx-1.17.3.tar.gz
安装:
一、基础软件包:
yum -y install gcc gcc-c++ libevent pcre-devel openssl-devel
tar -zxvf libfastcommonV1.0.7.tar.gz
mv libfastcommon-1.0.7 /usr/local/
cd /usr/local/libfastcommon-1.0.7
./make.sh
./make.sh install
cp /usr/lib64/libfastcommon.so /usr/lib
二、安装FastDFS:
tar -zxvf FastDFS_v5.05.tar.gz
mv FastDFS /usr/local
cd /usr/local/FastDFS
./make.sh
./make.sh install
cp /usr/local/FastDFS/conf/* /etc/fdfs/ # FastDFS配置文件是/etc/fdfs/,因此需要将软件包的配置文件,拷贝到/etc/fdfs/
1、跟踪器tracker配置
vim vim /etc/fdfs/tracker.conf
base_path=/usr/local/FastDFS/tracker # 22行,数据存储的位置
fdfs_trackerd /etc/fdfs/tracker.conf [restart] # 启动tracker
2、存储storage配置
vim /etc/fdfs/storage.conf
base_path=/usr/local/FastDFS/storage # 41行,数据存储位置
store_path0=/usr/local/FastDFS/storage # 109行,如果不配置这个属性,则采用base_path中配置的路径
tracker_server=192.168.206.135:22122 # 118行,追踪器的ip和port, 踩坑:不能是127.0.0.1
fdfs_storaged /etc/fdfs/storage.conf [restart] # 启动storage‘
3、配置客户端client:(用于测试)
cp /usr/local/FastDFS/client/libfdfsclient.so /usr/lib
vim /etc/fdfs/client.conf
base_path=/usr/local/FastDFS/client # 10行
tracker_server=192.168.206.135:22122 # 14行
fdfs_test /etc/fdfs/client.conf upload index.html # 上传文件(index.html)到fastDFS
# 这里会得到文件上传到fastDFS上的路径
例如:http://192.168.206.135/group1/M00/00/00/wKjOh18XDA2AIpWTAAAAET6XstA39_big.html
# 到这里FastDFS搭建完毕,但是直接将这个url放到浏览器中是无法访问的。需要进一步的配置。
三、通过Nginx访问FastDFS上的文件:
# 这里要使用一个插件,fastdfs-nginx-module_v1.16.tar.gz
# 通过这个插件可以实现FastDFS的外部访问
# 浏览器 --> nginx --> 插件 --> FastDFS
1、配置插件
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
mv fastdfs-nginx-module /usr/local
cd /usr/local/fastdfs-nginx-module
vim src/config # 替换掉文件中的所有的local/
cp /usr/local/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/ # 将配置文件拷贝到/etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
tracker_server=192.168.206.135:22122 # 40行
group_name=group1 # 47行,这里的group1就是上传文件得到的url前缀group1
url_have_group_name = true # 53行,使用前缀
store_path0=/usr/local/FastDFS/storage # 62行,fastDFS的storage配置的存储路径
2、安装nginx,添加插件模块
useradd -s /sbin/nologin nginx # 创建启动nginx的用户
tar -zxvf nginx-1.17.3.tar.gz
cd nginx-1.17.3
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --add-module=/usr/local/fastdfs-nginx-module/src # 设置安装路径,启动用户,添加插件模块
make && make install
3、配置nginx
vim /usr/local/nginx/conf/nginx.conf
location /group1/M00/ { # 加添一个localtion,将请求转发给ngx_fastdfs_module处理。
ngx_fastdfs_module;
}
访问:http://192.168.206.135/group1/M00/00/00/wKjOh18XDA2AIpWTAAAAET6XstA39_big.html
后面用到集群或者高可用再做补充。