软件下载
1 | # 已经事先把所需软件下载好并上传到/usr/local/src目录了 |
基础环境设置
安装依赖组件
1 | yum -y install gcc gcc-c++ libevent |
安装libfastcommon
1 | cd /usr/local/src |
安装fastdfs
1 | cd /usr/local/src |
fdfs_trackerd配置并启动
1 | # 创建tracker工作目录,storage存储目录(选择大磁盘空间)等 |
fdfs_storage配置并启动
与tracker不同的是,storage还需要一个目录用来存储数据,所以在上面步骤中另外多建了两个目录fdfs_storage_data,fdfs_storage
1 | cd /etc/fdfs/ |
校验整合
要确定一下,storage是否注册到了tracker中去
1 | /usr/bin/fdfs_monitor /etc/fdfs/storage.conf |
成功后可以看到:ip_addr = 192.168.75.5 ACTIVE
使用FastDFS自带工具测试
1 | cd /etc/fdfs/ |
上传一张图片1.jpg到Centos服务器上的 /tmp 目录下,进行测试,命令如下:
1 | /usr/bin/fdfs_test /etc/fdfs/client.conf upload /tmp/1.jpg |
组名:group1
磁盘:M00
目录:00/00
文件名称:wKhLBV6FUl6AA0eTACSnIi51C7k037.jpg
注意图片路径中的8080端口,这个是tracker的端口
上传的图片会被上传到我们创建的fdfs_storage_data目录下,会有四个图片文件:
1 | [root@bogon 00]# pwd |
data下有256个1级目录,每级目录下又有256个2级子目录,总共65536个文件,新写的文件会以hash的方式被路由到其中某个子目录下,然后将文件数据直接作为一个本地文件存储到该目录中。
FastDFS和nginx结合使用
FastDFS通过Tracker服务器,将文件放在Storage服务器存储,但是同组之间的服务器需要复制文件,有延迟的问题.
假设Tracker服务器将文件上传到了172.20.132.57,文件ID已经返回客户端,这时,后台会将这个文件复制到172.20.132.57,如果复制没有完成,客户端就用这个ID在172.20.132.57取文件,肯定会出现错误。
这个fastdfs-nginx-module可以重定向连接到源服务器取文件,避免客户端由于复制延迟的问题,出现错误。
正是这样,FastDFS需要结合nginx,所以取消原来对HTTP的直接支持。
在tracker上安装 nginx
在每个tracker上安装nginx的主要目的是做负载均衡及实现高可用。如果只有一台tracker服务器可以不配置nginx.
一个tracker对应多个storage,通过nginx对storage负载均衡;
在storage上安装nginx(openresty)
1 | cd /usr/local/src/ |
1 | yum -y install pcre pcre-devel openssl openssl-devel zlib zlib-devel |
1 | # 进一步完善nginx配置文件 |
搭建集群
集群规划(单tracker,双storage)
1 | 虚拟机 IP 说明 |
软件清单
1 | fastdfs-6.06.tar.gz |
安装步骤
1.tracker服务器
1 | # 1. 安装libfastcommon 模块 |
2.storage服务器
1 | # 1. 安装libfastcommon 模块 |
3.测试
1 | # vim /etc/fdfs/client.conf |
4. tracker安装nginx
1 | http { |