分布式FastDFS文件系统
以下是centos7的单机安装
FastDFS安装配置:
-
安装依赖库,libfastcommon,这是从FastDFS 和 FastDHT 中提取出来的公共 C 函数库
-
在这个网址下载.tar包,然后
tar -zxvf libfastcommon-1.0.57.tar.gz
cd libfastcommon-1.0.57
执行:./make.sh
安装:./make.sh install
注:libfastcommon.so 库就会被安装到系统路径/usr/lib/中,就不用管了。
-
-
安装FastDFS:
-
在这个网址下载.tar包,然后
tar -zxvf fastdfs-6.08.tar.gz
cd fastdfs-6.08
执行:./make.sh
安装:./make.sh install
默认是安装在/usr/bin里面,两个可执行文件,fdfs_trackerd和fdfs_storaged。
-
配置tracker:vim /etc/fdfs/tracker.conf,此路径及文件上步执行后就有了,主要是有一个参数要改:
# the base path to store data and log files
base_path = /home/fastdfs/tracker
注意:这些路径需要先事先 mkdir -p 创建出来,你可以是其它路径
-
配置storage:vim /etc/fdfs/storage.conf
base_path = /home/fastdfs/storage
store_path0 = /home/fastdfs/storage
# 由拿个tracker管理的,就写其地址,我本机ip就是192.168.125.135
tracker_server = 192.168.125.135:22122
-
启动tracker和storage:
service fdfs_trackerd start
service fdfs_storaged start
-
测试是否安装成功:
-
改客户端配置文件:vim /etc/fdfs/client.conf
base_path = /home/fastdfs/tracker
tracker_server = 192.168.125.135:22122
-
上传文件:直接使用命令fdfs_upload_file
fdfs_upload_file 客户端配置文件路径 图片路径
即:fdfs_upload_file /etc/fdfs/client.conf ./bingbing.png
得到一个类似于:group1/M00/00/00/wKh9fWKPNNWANnfKAA7ZvEsRqEY019.png这样的文件id结果就代表OK了。

-
-
nginx配合FastDFS一起使用:
访问的时候直接访问nginx,通过nginx的转发来获取,可以提高网站提供图片的效率。具体操作如下:
-
这里下载fastdfs-nginx-module,然后将其解压到一个地方,路径自己定:
tar -zxvf fastdfs-nginx-module-1.22.tar.gz -C /usr/local/nginx_fastdfs/original_package # 这个路径只是我的举例,你可以是任何地方
-
安装nginx,跟菜鸟教程这个网址来走就好了,非常简单。但是一定要注意一点,在./configure时要注意加一个参数:–add-module=上面fastdfs-nginx-module解压的绝对路径/src,那么你安装nginx时configure时的命令可能就如下:
./configure --prefix=/usr/local/nginx_fastdfs/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.45 --add-module=/usr/local/nginx_fastdfs/original_package/fastdfs-nginx-module-1.22/src/
make && make install
- –prefix指定安装位置,你同样可以决定安装位置;
- –add-module是这里要添加的,值的路径是 fastdfs-nginx-module解压绝对路径/src
- 以上命令后nginx就是安装到/usr/local/nginx_fastdfs/nginx里面的。

-
进行配置:
-
配置fastdfs-nginx-module:将其解压路径里的src下的mod_fastdfs.conf复制到前面的/etc/fdfs/里面
cp /your_prefix_path/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs/
然后vim修改配置:vim /etc/fdfs/mod_fastdfs.confconnect_timeout=10
tracker_server=192.168.125.135:22122
# 默认是false,给true就是最前面返回文件名时带group1这样的组的名字,我们是需要的
url_have_group_name = true
# 跟上面配置storage时设置的这个路径一样
store_path0=/home/fastdfs/storage
-
复制配置文件:先进到前面解压的fastdfs-6.08的conf目录里
cd fastdfs-6.08.tar.gz解压的绝对路径里/conf# 复制一些配置文件
cp http.conf mime.types /etc/fdfs/
-
修改nginx的配置文件:vim /usr/local/nginx_fastdfs/nginx/conf/nginx.conf
修改里面的http配置信息的部分,如下:server {
listen 6789;
server_name 192.168.125.135;
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
}注:~/group[0-9]/ 代表正则匹配,以匹配上面上传图片后得到的id,后面就是以 group[0-9] 开头的url

-
-
启动nginx,进到nginx安装路径的sbin目录启动nginx:

-
访问前面上传文件的图片地址就能拿到图片:192.168.125.135:6789/group1/M00/00/00/wKh9fWKPNNWANnfKAA7ZvEsRqEY019.png
-
这是我的虚拟机上装的FasfDFS和nginx,我用windows的浏览器请求,大抵会失败,因为防火墙问题,上面nginx监听的6789端口并没有暴露出来

-
那就去开启端口重启防火墙再访问:
firewall-cmd --add-port=6789/tcp --permanent
firewall-cmd --reload
注意:你防火墙软件可能是iptables,那就网上搜这个的开启端口方式 -
现在再访问这个地址就可以了:192.168.125.135:6789/group1/M00/00/00/wKh9fWKPNNWANnfKAA7ZvEsRqEY019.png

-
这个还可以与其它语言的结合起来使用,如Django框架的搭配使用。
不过现在这个很久没更新了,可能有些跟不上时代的步伐了,现在用到的比较多的文件管理系统有MINIO,社区比较活跃,也有各种语言的API接口,或许你可以去试试。
希望能帮到你~
.

被折叠的 条评论
为什么被折叠?



