https://www.jianshu.com/p/a842358b451b

https://zhuanlan.zhihu.com/p/80256918

一、所有跟踪服务器和存储服务器均执行如下操作

1、编译和安装所需的依赖包:

yum install make cmake gcc gcc-c++

2、安装 libfastcommon:

(1)下载 libfastcommon 到/usr/local/src 目录

下载地址:https://github.com/happyfish100/libfastcommon/archive/refs/tags/V1.0.53.tar.gz

(2)解压

cd /usr/local/src/

tar -zxf libfastcommon-1.0.53.tar.gz

cd libfastcommon-1.0.53

(3) 编译、安装

./make.sh

./make.sh install

安装 FastDFS

(1)下载 FastDFS 源码包到 /usr/local/src 目录

下载地址:https://github.com/happyfish100/fastdfs/archive/refs/tags/V6.07.tar.gz

(2)解压

cd /usr/local/src/

tar -zxf fastdfs-6.07.tar.gz

cd fastdfs-6.07

(3)编译、安装(编译前要确保已经成功安装了 libfastcommon)

./make.sh

./make.sh install

fastdfs可执行文件目录:/usr/bin/

fastdfs配置文件目录: /etc/fdfs/

配置Tracker

进入配置文件目录

cd /etc/fdfs

拷贝出一个tracker.conf

cp tracker.conf.sample tracker.conf

修改配置

vim tracker.conf

vi /etc/fdfs/tracker.conf 修改的内容如下:

disabled=false

port=22122

base_path=/app/fastdfs/tracker-data

创建基础数据目录(参考基础目录 base_path 配置):

mkdir -p /app/fastdfs/tracker-data

4、 防火墙中打开跟踪器端口(默认为 22122)

5、 启动 Tracker:

/etc/init.d/fdfs_trackerd start

初次成功启动,会在 /app/fastdfs/tracker-data 目录下创建 data、logs 两个目录

查看 FastDFS Tracker 是否已成功启动:

ps -ef | grep fdfs

6、 关闭 Tracker:

/etc/init.d/fdfs_trackerd stop

7、 设置 FastDFS 跟踪器开机启动:

vi /etc/rc.d/rc.local 添加以下内容:

FastDFS Tracker

/etc/init.d/fdfs_trackerd start

3.2.2 配置Storage Server

进入配置文件目录

cd /etc/fdfs

拷贝出一个storage.conf

cp storage.conf.sample storage.conf

修改配置

vim storage.conf

修改的内容如下:

disabled=false

port=23000

base_path=/app/fastdfs/storage-data

store_path0=/app/fastdfs/storage-data

tracker_server = 192.168.76.129:22122

tracker_server = 192.168.76.130:22122

http.server_port=8888

3、 创建基础数据目录(参考基础目录 base_path 配置):

mkdir -p /app/fastdfs/storage-data

4、 防火墙中打开存储器端口(默认为 23000):

vi /etc/sysconfig/iptables 添加如下端口行: -A INPUT -m state state NEW -m tcp -p tcp dport 23000 -j ACCEPT 重启防火墙: # service iptables restart

5、 启动 Storage:

/etc/init.d/fdfs_storaged start

初次成功启动,会在 /app/fastdfs/storage-data 目录下创建 data、logs 两个目录

查看 FastDFS Storage 是否已成功启动

ps -ef | grep fdfs

6、 关闭 Storage:

/etc/init.d/fdfs_storaged stop

7、 设置 FastDFS 存储器开机启动:

vi /etc/rc.d/rc.local 添加:

FastDFS Storage

/etc/init.d/fdfs_storaged start

各节点启动动,使用

tail -f /fastdfs/storage/logs/storaged.log

命令监听存储节点日志,可以看到存储节点链接到跟踪器,并提示哪一个为 leader 跟踪器。

同时也会看到同一组中的其他节点加入进来的日志信息。

查看 23000 端口监听情况:

netstat -unltp|grep fdfs

所有 Storage 节点都启动之后,可以在任一 Storage 节点上使用如下命令查看集群信息:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

可以看到存储节点状态为 ACTIVE 则可

在Storage 上安装 Nginx

1、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

2、上传fastdfs-nginx-module-1.22.tar.gz 到/usr/local/src,解压

cd /usr/local/src/

tar -zxf fastdfs-nginx-module-1.22.tar.gz

6、编译安装 Nginx(添加fastdfs-nginx-module 模块)

cd /usr/local/src/

tar -zxf nginx-1.20.2.tar.gz

cd nginx-1.20.2

./configure –add-module=/usr/local/src/fastdfs-nginx-module-1.22/src

make

make install

cp /usr/local/src/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs

编辑mod_fastdfs.conf

cd /etc/fdfs/mod_fastdfs.conf

vim mod_fastdfs.conf

修改内容如下:

connect_timeout=10

base_path=/tmp

tracker_server=192.168.76.129:22122

tracker_server=192.168.76.130:22122

storage_server_port=23000

group_name=group1

url_have_group_name = true

store_path0=/app/fastdfs/storage-data

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

查看一下http.conf

vim /etc/fdfs/http.conf

if use token to anti-steal

default value is false (0)

http.anti_steal.check_token = false

token TTL (time to live), seconds

default value is 600

http.anti_steal.token_ttl = 900

secret key to generate anti-steal token

this parameter must be set when http.anti_steal.check_token set to true

the length of the secret key should not exceed 128 bytes

http.anti_steal.secret_key = FastDFS1234567890

http.conf 中的这几项用于防盗链设置,http.anti_steal.check_token = true 表示开启token验证。http下载的时候需要携带?token=xxxx 参数

修改一下nginx.conf,增加一个location 匹配。 nginx.conf 文件在/usr/local/nginx/conf目录

[root@sybj-int-27 fdfs]# cd /usr/local/nginx/conf/

[root@sybj-int-27 conf]# vim nginx.conf

 server {

    listen       80;

    server_name  localhost;



    #charset koi8-r;



    #access_log  logs/host.access.log  main;



    location / {

        root   html;

        index  index.html index.htm;

    }

    # 增加这一行

    location ~/group([0-9])/M00 {

        ngx_fastdfs_module;

    }

至此nginx 和fastdfs-nginx-module 配置完毕,所有storage节点都需要安装,执行以上步骤。

在两台机器上 启动nginx