参考文档:
https://www.jianshu.com/p/a842358b451b
https://zhuanlan.zhihu.com/p/80256918
建议先设置hosts,这样后面可以用host name 代替 IP
echo ‘\n192.168.0.201 fastdfs-tracker-server’ » /etc/hosts
所有跟踪服务器和存储服务器均执行如下操作
编译和安装所需的依赖包:
yum install make cmake gcc gcc-c++
安装 libfastcommon:
下载 libfastcommon 到/usr/local/src 目录
下载地址:https://github.com/happyfish100/libfastcommon/archive/refs/tags/V1.0.53.tar.gz
解压
1cd /usr/local/src/
2tar -zxf libfastcommon-1.0.53.tar.gz
3cd libfastcommon-1.0.53
编译、安装
1./make.sh
2./make.sh install
安装 FastDFS
下载 FastDFS 源码包到 /usr/local/src 目录
下载地址:https://github.com/happyfish100/fastdfs/archive/refs/tags/V6.07.tar.gz
解压
1cd /usr/local/src/
2tar -zxf fastdfs-6.07.tar.gz
3cd fastdfs-6.07
编译、安装(编译前要确保已经成功安装了 libfastcommon)
1./make.sh
2./make.sh install
fastdfs可执行文件目录:/usr/bin/
fastdfs配置文件目录: /etc/fdfs/
配置 Tracker
进入配置文件目录
cd /etc/fdfs
拷贝出一个tracker.conf
cp tracker.conf.sample tracker.conf
修改tracker.conf 的配置
vi /etc/fdfs/tracker.conf
修改的内容如下:
1disabled=false
2port=22122
3base_path=/ghzy/fastdfs/tracker
创建基础数据目录(参考基础目录 base_path 配置):
1mkdir -p /ghzy/fastdfs/tracker
启动 Tracker:
/etc/init.d/fdfs_trackerd start
初次成功启动,会在 /ghzy/fastdfs/tracker 目录下创建 data、logs 两个目录
设置 Tracker 开机启动
chkconfig –add fdfs_trackerd
启动 Tracker 服务
service fdfs_trackerd start
停止 Tracker 服务
service fdfs_trackerd stop
配置 Storage Server
进入配置文件目录
cd /etc/fdfs
拷贝出一个 storage.conf
cp storage.conf.sample storage.conf
修改 storage.conf 配置
vim /etc/fdfs/storage.conf
修改的内容如下:
1disabled=false
2port=23000
3base_path=/ghzy/fastdfs/storage
4store_path0=/ghzy/fastdfs/storage
5tracker_server = 10.9.250.244:22122
6tracker_server = 10.9.250.245:22122
其他默认配置即可
创建基础数据目录(参考基础目录 base_path 配置):
mkdir -p /ghzy/fastdfs/storage
启动 Storage 服务
/etc/init.d/fdfs_storaged start
初次成功启动,会在 /ghzy/fastdfs/storage 目录下创建 data、logs 两个目录
添加 Storage 开机启动
chkconfig –add fdfs_storaged
启动 Storage 服务
service fdfs_storaged start
停止 Storage服务
service fdfs_storaged stop
所有 Storage 节点都启动之后,可以在任一 Storage 节点上使用如下命令查看集群信息:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
可以看到存储节点状态为 ACTIVE 则可
文件上传测试
修改 Tracker 服务器中的客户端配置文件:
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vi /etc/fdfs/client.conf
修改内容如下:
base_path=/ghzy/fastdfs/client
tracker_server = 10.9.250.244:22122
tracker_server = 10.9.250.245:22122
创建文件操作目录:
mkdir -p /ghzy/fastdfs/client
执行如下文件上传命令:
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/fastdfs-6.07.tar.gz
能返回如下文件 ID,说明文件上传成功:
group1/M00/00/00/Cgn69GHOpjeAe8L3AAxZpW9u5YM.tar.gz
group1/M00/00/00/wKgAZmHUJ3WAMD0GABA07JYrqZA.tar.gz
在Storage 上安装 Nginx
fastdfs-nginx-module 作用说明
FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储,但是同组存储服务器之间需要进入
文件复制,有同步延迟的问题。假设 Tracker 服务器将文件上传到了 192.168.1.135,上传成功后文件 ID
已经返回给客户端。此时 FastDFS 存储集群机制会将这个文件同步到同组存储 192.168.1.136,在文件还
没有复制完成的情况下,客户端如果用这个文件 ID 在 192.168.1.136 上取文件,就会出现文件无法访问的
错误。而 fastdfs-nginx-module 可以重定向文件连接到源服务器取文件,避免客户端由于复制延迟导致的
文件无法访问错误。(解压后的 fastdfs-nginx-module在 nginx 安装时使用)
先安装 pcre和pcre-devel
yum install -y pcre pcre-devel zlib-devel
如果是ubuntu,则执行如下命令:
sudo apt-get install openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev
上传fastdfs-nginx-module-1.22.tar.gz 到/usr/local/src,解压
cd /usr/local/src/
tar -zxf fastdfs-nginx-module-1.22.tar.gz
编译安装 Nginx(添加fastdfs-nginx-module 模块)
1cd /usr/local/src/
2tar -zxf nginx-1.20.2.tar.gz
3cd nginx-1.20.2
4./configure --with-http_ssl_module --add-module=/usr/local/src/fastdfs-nginx-module-1.22/src
5make
6make install
cp /usr/local/src/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs
编辑mod_fastdfs.conf
cd /etc/fdfs
vim /etc/fdfs/mod_fastdfs.conf
修改内容如下:
1connect_timeout=10
2base_path=/tmp
3tracker_server=10.9.250.244:22122
4tracker_server=10.9.250.245:22122
5storage_server_port=23000
6group_name=group1
7url_have_group_name = true
8store_path0=/ghzy/fastdfs/storage
其他配置默认。
fastdfs-nginx-module 依赖了两个配置文件 http.conf, mine.types文件,
这两个文件在 fastdfs源码目录的conf目录下,需要拷贝到/etc/fdfs目录
cp /usr/local/src/fastdfs-6.07/conf/http.conf /etc/fdfs
cp /usr/local/src/fastdfs-6.07/conf/mime.types /etc/fdfs
修改 nginx.conf 配置
vim /usr/local/nginx/conf/nginx.conf
核心内容如下:
1 server {
2 listen 80;
3 server_name localhost;
4
5 #charset koi8-r;
6
7 #access_log logs/host.access.log main;
8
9 location / {
10 root html;
11 index index.html index.htm;
12 }
13
14 # fastdfs 配置,请求中保护 /group([0-9])/M00 的请求转给 fastdfs
15 location ~ /group([0-9])/M00 {
16 ngx_fastdfs_module;
17 }
18
19 # fastdfs 配置
20 # location ~ ^/file_server/group([0-9])/M00/ {
21 # rewrite ^/file_server/(.*)$ /$1 break;
22 # ngx_fastdfs_module;
23 # }
24
25 # 其他设置
26 # location ~ ^/file_server/local/ {
27 # rewrite ^/file_server/local/(.*)$ /$1 break;
28 # proxy_pass http://10.9.250.247;
29 # }
30 }
至此nginx 和fastdfs-nginx-module 配置完毕,所有storage节点都需要安装,执行以上步骤。
在两台机器上 启动nginx
前面直接通过 Nginx 访问 Storage 中的 文件
http://10.9.250.244/group1/M00/00/00/Cgn69GHOpjeAe8L3AAxZpW9u5YM.tar.gz
http://10.9.250.245/group1/M00/00/00/Cgn69GHOpjeAe8L3AAxZpW9u5YM.tar.gz
评论