FastDFS
FastDFS作为一个分布式文件系统,使用原理和环境搭建步骤网上有很多教程,https://www.cnblogs.com/chiangchou/p/fastdfs.html?tdsourcetag=s_pcqq_aiomsg该博客写得非常的完美,按照博客上的步骤进行搭建即可。(防火墙开发的命令建议根据实际系统进行配置。该博客中的防火墙和新版的centos 防火墙不一样,我这边使用的系统是CentOS Linux release 7.7.1908 ,防火墙不是iptables而是firewalld。)
FastDFS文件上传操作原理
1、storage定时向Tracker上传状态信息
2、client发送上传连接请求到Tracker,Tracker查询步骤1返回可用的storage
3、Tracker将可用的storage的ip和端口返回到client
4、client发送file content(文件内容)和metadata(源数据)到storage
5、storage接收到client发送的信息后,生成file ID 并将上传的内容写入磁盘,然后依次返回给Tracker和client
6、将生成的file ID(group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接等信息)写入数据库
FastDFS安装思路
版本:V5.05 (网上安装教程一般都是V5.05的)
libfastcommon(基础环境)+FastNDF(Tracker+Storage+Client)+Nginx(astdfs-nginx-module )
1、确保linux系统上安装了GCC编译器
2、下载编译安装FastDNS基础环境libfastcommon
3、下载编译安装FastDNS
4、修改FastDFS 服务脚本设置的默认路径。默认路径是/usr/local/bin,但实际命令安装在/usr/bin
修改方法1)直接修改/etc/init.d/fdfs_tracker和fdfs_storaged文件中配置的路径地址。
修改方法2)创建软连接ln-s,将 /usr/bin 下的restart.sh、restart.sh、fdfs_tracker、fdfs_storaged连接到/usr/bin下
5、修改tracker.conf配置文件中的base_path 和 http.server_port。(http.server_port应该和nginx中配置的端口一致)
6、将storage.conf.sample重命名storaged.conf 并配置文件中的base_path 、store_path0、tracker_server和http.server_port。tracker_server为服务器配置的域名或者ID地址+tracker端口号
7、验证Tracker 和Storage 通信是否正常:/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
8、cd命令 client.conf.sample重命名为client.conf文件 ,修改client.conf文件中的base_path 和 tracker_server。
9、上传图片进行测试。
如果以上均测试没有问题,那么根据自己的实际需求,设置开机自启动和防火墙开发端口。 (tracker默认端口:22122 Storage默认端口:23000 )
10、安装nginx 修改nginx.conf 将/group1/M00 映射到对应的路径下。
11、开放防火墙端口后,通过域名+端口+文件上传返回的字符串信息进行访问操作。
12、nginx 整合fastdfs-nginx-module模块
FastDFS安装过程中常见的报错
1、使用GCC编译时报错,建议更新或下载安装GCC
2、配置文件错误,无法正确启动程序,建议检查conf文件中配置信息是否正确
3、启动时端口占用,建议更换端口或者将已经占用该端口的进程强制结束掉
4、Tracker和Storage 均能启动,但是无法通讯,建议检查:两边配置文件中的参数是否匹配,racker.conf文件中的tracker_server参数是否正确。
5、上传文件成功并返回文件ID但是无法浏览器访问。建议检查防火墙是否关闭、已经开放了nginx端口、已经默认端口是否是80
(通过域名直接访问,默认只能访问80端口,如果修改了端口号那么需要域名+端口才能访问)