FastDFS安装配置
一、简介
FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)三个部分组成,主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。
二、安装
下载
https://github.com/happyfish100/fastdfs/releases
下载最新版代码
安装之前需要安装公共函数包 https://github.com/happyfish100/libfastcommon
安装libfastcommon
解压 libfastcommon
unzip libfastcommon-master.zip
./make.sh
./make.sh install
设置软链接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
FastDFS
解压
tar -zxvf fastdfs-5.05.tar.gz
之后进入目录
./make.sh
./make.sh install
成功后安装到了 /etc/fdfs
内
ll /etc/fdfs
显示默认的配置文件5个,复制.sample 文件(示例配置文件),去掉.sample后缀
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf
...
...
Tracker
Tracker服务器的文件路径 /opt/fastdfs_tracker
mkdir /opt/fastdfs_tracker
修改 /etc/fdfs
内的tracker.conf 文件
disabled=false
port=22122 #设置tracker的端口号,通常采用22122这个默认端口
base_path=/opt/fastdfs_tracker #设置tracker的数据文件和日志目录
http.server_port=6666 #设置http端口号,默认为8080
创建软引用
ln -s /usr/bin/fdfs_trackerd /usr/local/bin
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin
启动Tracker服务器
service fdfs_trackerd start
验证是否正常
netstat -unltp|grep fdfs
查看22122 端口被监听
设置tracker 开机启动 ,/etc/rc.d/rc.local
加入
service fdfs_trackerd start
Storage
Storage服务器的文件目录 /opt/fastdfs_storage
/opt/fastdfs_storage_data
mkdir /opt/fastdfs_storage
mkdir /opt/fastdfs_storage_data
修改 /etc/fdfs
内的storage .conf 文件
disabled=false #启用配置文件(默认启用)
group_name=group1 #组名,根据实际情况修改
port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
base_path=/opt/fastdfs_storage #设置storage数据文件和日志目录
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/opt/fastdfs_storage_data #实际文件存储路径
tracker_server=tracker_server_IP:22122 #tracker 服务器的 IP地址和端口号,如果是单机搭建,IP不要写127.0.0.1,否则启动不成功
http.server_port=8888 #设置 http 端口号
创建软引用
ln -s /usr/bin/fdfs_storaged /usr/local/bin
启动Storage服务器
service fdfs_storaged start
如果成功,/opt/fastdfs_storage
生成data 和log目录,端口23000监听常,/opt/fastdfs_storage_data
目录下生成 256个1级目录,每级目录下又有256个2级子目录,总共65536个文件
验证
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
显示有 tracker_server_IP ACTIVE
设置tracker 开机启动 ,/etc/rc.d/rc.local
加入
service fdfs_storage start
测试
编辑/etc/fdfs
目录下的client.conf 文件
base_path=/opt/fastdfs_tracker #tracker服务器文件路径
tracker_server=tracker_server_IP:22122 #tracker服务器IP地址和端口号
http.tracker_server_port=6666 # tracker 服务器的 http 端口号,必须和tracker的设置对应起来
模拟上传
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /opt/BLIZZARD.jpg
运行后可以发现给我们返回了一个路径
浏览器访问 tracker_server_IP:6666/上面返回路径,出现无法访问
需要使用nginx FastDFS的模块fastdfs-nginx-module
fastdfs-nginx-module
下载地址: https://github.com/happyfish100/fastdfs-nginx-module
storage nginx
下载nginx最新版,并且解压;解压fastdfs-nginx-module-master.zip
编译nginx,进入nginx目录
./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module-master/src
make
make install
在 /usr/local/nginx
看到nginx安装目录,修改nginx配置文件nginx.conf
listen 9999;
location ~/group1/M00 {
root /opt/fastdfs_storage_data/data;
ngx_fastdfs_module;
}
然后进入FastDFS的安装目录/usr/local/fastdfs-5.05
目录下的conf目录,将http.conf和mime.types拷贝到/etc/fdfs
目录下:
cp -r /usr/local/fastdfs-5.05/conf/http.conf /etc/fdfs/
cp -r /usr/local/fastdfs-5.05/conf/mime.types /etc/fdfs/
接下来还需要把fastdfs-nginx-module安装目录中src目录下的mod_fastdfs.conf也拷贝到/etc/fdfs目录下:
cp -r /usr/local/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
编辑刚刚拷贝的mod_fastdfs.conf
base_path=/opt/fastdfs_storage #保存日志目录
tracker_server=192.168.111.11:22122 #tracker服务器的IP地址以及端口号
storage_server_port=23000 #storage服务器的端口号
url_have_group_name = true #文件 url 中是否有 group 名
store_path0=/opt/fastdfs_storage_data # 存储路径
group_count = 3 #设置组的个数,事实上这次只使用了group1
设置了group_count = 3,接下来就需要在文件尾部追加这3个group setting:
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data
[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data
[group3]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data
建立 M00 至存储目录的符号连接
ln -s /opt/fastdfs_storage_data/data /opt/fastdfs_storage_data/data/M00
启动nginx
/usr/local/nginx/sbin/nginx
tracker nginx
同理,再装一个nginx,目录命名为nginx2,安装路径依旧放在/usr/local下,
mkdir nginx2
cd nginx-1.8.1/
./configure --prefix=/usr/local/nginx2 --add-module=/usr/local/fastdfs-nginx-module-master/src
make
make install
修改nginx2 配置文件,tracker的nginx无需修改listen端口,即默认的80端口,并将upstream指向storage的nginx地址:
upstream fdfs_group1 {
server 127.0.0.1:9999;
}
location /group1/M00 {
proxy_pass http://fdfs_group1;
}
启动
/usr/local/nginx2/sbin/nginx
编辑/etc/fdfs
目录下的client.conf 文件
base_path=/data/fastdfs_storage #日志存放路径
tracker_server=tracker_server_IP:22122 #tracker 服务器 IP 地址和端口号
http.tracker_server_port=6666 # tracker 服务器的 http 端口号,必须和tracker的设置对应起来
模拟上传
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /opt/BLIZZARD.jpg
运行后可以发现给我们返回了一个路径
浏览器访问 tracker_server_IP:80/上面返回路径,可以访问到上传的图片
FastDFS–原理篇 https://www.linuxidc.com/Linux/2014-10/107591.htm
总结
Tracker
端口:22122
地址:/opt/fastdfs_tracker
http端口:6666
nginx地址:/usr/local/nginx2
nginx监听:80
Storage
端口:23000
地址:/opt/fastdfs_storage
数据地址:/opt/fastdfs_storage_data
http端口:8888
nginx地址:/usr/local/nginx
nginx监听:9999