编程Linux

FastDFS服务搭建 记录安装与配置过程 Linux 版

2021-03-05  本文已影响0人  曼昱的小蓝毛巾

环境准备

服务器主机名 ip 说明
tracker 192.168.1.128 负载均衡服务
storage1 192.168.1.129 存储服务
storage2 192.168.1.130 存储服务
备注:实验时,务必关闭机器的iptables、selinux。
Tracker 服务器和storage服务器一样,都需要安装FastDFS组件,同时也都需要安装FastDFS的nginx组件,不同的地方就是Tracker服务器启动的是Tracker负载均衡服务,而storage服务器启动的是storage存储服务。

1、tracker 192.168.1.128

1.1 准备工作

    CentOS 7 
    // 安装编译工具
    yum -y groupinstall 'Development Tools'
    yum -y install wget
    yum -y install zip unzip
    yum -y install gcc

    // 上传所需压缩包文件至【/usr/local/fdfs】目录下
    fastdfs-nginx-master.zip
    master.zip
    V5.05.tar.gz

    // 解压至当前目录
    unzip -d . master.zip
    unzip -d . fastdfs-nginx-master.zip
    tar zxvf V5.05.tar.gz -C /usr/local/fdfs

1.2 安装libfastcommon类库

FastDFS依赖libfastcommon类库

[root@guanz libfastcommon-master]# cd libfastcommon-master
[root@guanz libfastcommon-master]# ./make.sh
[root@guanz libfastcommon-master]# ./make.sh install

报错case:

./make.sh
问题:
    ./make.sh: line 14: gcc: command not found
    ./make.sh: line 15: ./a.out: No such file or directory
    cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O3 -c -o hash.o hash.c  
    make: cc: Command not found
    make: *** [hash.o] Error 127
解决:
    yum install gcc

1.3 安装FastDFS


[root@guanz fdfs]# cd fastdfs-5.05/
[root@guanz fastdfs-5.05]# ./make.sh
[root@guanz fastdfs-5.05]# ./make.sh install

报错case:

./make.sh

问题:
    make: *** [storage_service.o] Error 1
      ./make.sh: line 171: perl: command not found
      ./make.sh: line 172: perl: command not found
      ./make.sh: line 173: perl: command not found
      ./make.sh: line 174: perl: command not found
      ./make.sh: line 175: perl: command not found
      ./make.sh: line 176: perl: command not found
      ./make.sh: line 179: perl: command not found
解决:
      yum -y install perl perl-devel

到此为止,已经安装了FastDFS的tracker和storage,只不过还没有进行配置。
进入/etc/fdfs目录下,拷贝conf文件。

[root@guanz fastdfs-5.05]# cd /etc/fdfs/
[root@guanz fdfs]# ll
total 20
-rw-r--r--. 1 root root 1461 Dec 21 11:45 client.conf.sample
-rw-r--r--. 1 root root 7829 Dec 21 11:45 storage.conf.sample
-rw-r--r--. 1 root root 7102 Dec 21 11:45 tracker.conf.sample
[root@guanz fdfs]# cp tracker.conf.sample tracker.conf
[root@guanz fdfs]# ll
total 28
-rw-r--r--. 1 root root 1461 Dec 21 11:45 client.conf.sample
-rw-r--r--. 1 root root 7829 Dec 21 11:45 storage.conf.sample
-rw-r--r--. 1 root root 7102 Dec 21 11:47 tracker.conf
-rw-r--r--. 1 root root 7102 Dec 21 11:45 tracker.conf.sample

1.4 修改tracker配置文件,并启动

1.4.1 修改配置文件
tracker.conf

// 创建数据文件和日志目录
[root@guanz fdfs]# mkdir -p /mnt/disk1/fastdfs_data/tracker

#一般只需改动以下几个参数即可:
disabled=false            #启用配置文件,false表示启用
port=22122                #设置tracker的端口号
base_path=/mnt/disk1/fastdfs_data/tracker  #设置tracker的数据文件和日志目录(需预先创建)
http.server_port=8888     #设置http端口号
store_group=group3  # 设置group
1.4.2 启动tracker
[root@guanz fdfs]# /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start

1.4.3 查看运行状态
[root@guanz fdfs]# netstat -unltp | grep fdfs
tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      15973/fdfs_trackerd 
[root@guanz fdfs]# ps -ef | grep fdfs
root      15973      1  0 11:53 ?        00:00:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
root      15983   3032  0 11:53 pts/1    00:00:00 grep --color=auto fdfs

1.4.4 查看日志
tail -f /data/fdfs/logs/trackerd.log

1.4.5 设置开机自启动tracker
vim /etc/rc.local
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

whereis fdfs_trackerd #查看fdfs_trackerd所在路径

2、storage1服务器 192.168.1.129

2.1 安装步骤

  第【1】、【2】步同Tracker服务器一样,直接从第【4】步配置文件开始。

2.2 修改配置文件

storage.conf

group_name=group2
port=23000
base_path=/mnt/disk1/fastdfs_data/storage
store_path0=/mnt/disk1/fastdfs_data/storage
tracker_server=192.168.1.128:22122
http.server_port=8888

3、storage2服务器 192.168.1.130

3.1 安装步骤

   第【1】、【2】步同Tracker服务器一样,直接从第【4】步配置文件开始。

3.2 修改配置文件

storage.conf

group_name=group3
port=2300
base_path=/mnt/disk1/fastdfs_data/storage
store_path0=/mnt/disk1/fastdfs_data/storage
tracker_server=192.168.1.128:22122
http.server_port=8888

4. 安装nginx和fastdfs-nginx-module模块

前言

到目前为止,已经安装了Tracker服务器和Storage服务器,但是问题在于,通过Tracker上传下载都是通过nginx模块来指定放到哪一个组(group),并返回组名和路径。而stroage服务器需要通过组名和路径进行访问,所以无论Tracker服务器和Stroage服务器都需要安装该模块。

准备工作

① 下载fastdfs 的nginx模块
    fastdfs-nginx-module-master
② 下载安装依赖
    pcre库依赖
        pcre-8.38.tar.gz
        zlib-1.2.3.tar.gz
    openssl依赖
        openssl-1.0.1e.tar.gz
③ 安装nginx模块
     ngx_openresty-1.7.10.1.tar.gz

4.1 安装pcre

    // 解压
    [root@guanz openssl-1.0.1e]# tar zxvf pcre-8.38.tar.gz -C .
    // 进入解压目录,执行
    [root@guanz openssl-1.0.1e]# cd pcre-8.38/
    [root@guanz openssl-1.0.1e]# ./configure && make && make install

4.2 安装openssl

    // 创建目录
    [root@guanz openssl-1.0.1e]# mkdir openssl
    // 解压
    tar zxvf openssl-1.0.1e.tar.gz -C .
    // 进入解压目录,执行。
    [root@guanz openssl-1.0.1e]# cd openssl-1.0.1e/
    [root@guanz openssl-1.0.1e]# ./config && make && make install

    // 若报错:POD document had syntax errors at /usr/bin/pod2man line 69\. make: *** [install_docs]
    // 执行语句,重新编译安装即可
    rm -f /usr/bin/pod2man
    [root@guanz openssl-1.0.1e]# ./config && make && make install

4.3 安装zlib

    // 解压
    [root@guanz zlib]# tar zxvf zlib-1.2.3.tar.gz -C .
    // 进入解压目录,执行。
    [root@guanz zlib]# cd zlib-1.2.3/
    [root@guanz zlib-1.2.3]# ./configure && make && make install

4.4 安装ngx_openresty-1.7.10.1

    // 解压

    // 进入解压目录,执行
    ./configure --with-luajit --with-http_stub_status_module --with-http_realip_module --with-pcre=/data/fastdfs/pcre-8.38 --add-module=/data/fastdfs/fastdfs-nginx-module-master/src/ --with-http_ssl_module

    ./configure --with-luajit --with-http_stub_status_module --with-http_realip_module --with-pcre=/usr/fastdfs/pcre-8.38 --add-module=/usr/fastdfs/fastdfs-nginx-module-master/src/ --with-http_ssl_module --with-openssl=/usr/openssl/openssl-1.0.1e

    ./configure --prefix=/usr/local/nginx/ --add-module=/usr/fastdfs/fastdfs-nginx-module-master/src

    ./configure --with-luajit --with-http_stub_status_module --with-http_realip_module --with-pcre=/usr/local/fdfs/pcre-8.38 --add-module=/usr/local/fdfs/fastdfs-nginx-module-master/src/ --with-http_ssl_module --with-openssl=/usr/openssl/openssl-1.0.1e
    // 执行
    gmake
    gmake install
    // 拷贝文件 mod_fastdfs.conf http.conf ime.types
    cp /usr/local/fdfs/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/

    cp /usr/local/fdfs/fastdfs-5.05/conf/http.conf /usr/local/fdfs/fastdfs-5.05/conf/mime.types /etc/fdfs/

    // 修改mod*.conf文件。
    // 创建文件夹
    /mnt/disk1/fastdfs_data
    drwxr-xr-x. 2 root root  6 Dec 21 21:58 client
    drwxr-xr-x. 2 root root  6 Dec 21 21:58 storage_backup
    drwxr-xr-x. 4 root root 30 Dec 21 11:53 tracker

4.5 安装nginx

    // 解压

    // 进入解压目录,执行
    ./configure && make && make install

    // 修改配置文件
    移动proxy.conf

    // 创建路径
    mkdir -p /var/cache/nginx/proxy_cache/
    mkdir -p /log/nginx/ttc_log

    tracker:
        // 若报错:
        // 进入nginx-1.17.3
        ./configure --with-stream
        make && make install

    storage:报错
        无法启动,报找不到
        // 进入nginx-1.17.3
        ./configure --prefix=/usr/local/nginx/ --add-module=/usr/local/fdfs/fastdfs-nginx-module-master/src
        make && make install

4.6 相关配置文件配置

// 将配置文件拷贝到 /etc/fdfs/目录下,同时也将依赖的配置目录拷贝到/etc/fdfs目录下
cp /data/FastDFS/fastdfs-nginx-module-master/src mod_fastdfs.conf /etc/fdfs/
cp /root/fastdfs-master/conf/http.conf /root/fastdfs-master/conf/mime.types /etc/fdfs

修改配置文件 mod_fastdfs.conf
  一般只需改动以下几个参数即可:
  base_path=/home/.../fastdfs #保存日志目录
  tracker_server=ip+:端口 #tracker服务器的IP地址以及端口号
  storage_server_port=23000#storage服务器的端口号
  group_name=group1#当前服务器的group名
  url_have_group_name = true        #文件url中是否有group名
  store_path_count=1                #存储路径个数,需要和store_path个数匹配
  store_path0=/home/fastdfs         #存储路径
  http.need_find_content_type=true#从文件扩展名查找文件类型(nginx时为true)
  group_count = 2                   #设置组的个数
在末尾增加2个组的具体信息:
  [group1]
  group_name=group1
  storage_server_port=23000
  store_path_count=1
  store_path0=/home/fastdfs

  [group2]
  group_name=group2
  storage_server_port=23000
  store_path_count=1
  store_path0=/home/fastdfs

建立M00至存储目录的符号连接:
ln -s /data/fdfs/data/ /data/fdfs/data/M00
ln -s 
/mnt/disk1/fastdfs_data/storage/data/ /mnt/disk1/fastdfs_data/storage/data/M00
4.6.1 tracker相关配置文件
client.conf

base_path=/mnt/disk1/fastdfs_data/client
tracker_server=192.168.1.128:22122
mod_fastdfs.conf

tracker_server=192.168.1.128:22122
group_name=group1/group2/group3
store_path_count=3
store_path0=/usr/fastdfs/data/storage_1
store_path1=/usr/fastdfs/data/storage_2
store_path1=/usr/fastdfs/data/storage_3

storage_server_port=23000
group_count = 3
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/usr/local/fdfs/data/storage_1
[group2]
group_name=group2
storage_server_port=23001
store_path_count=1
store_path0=/usr/local/fdfs/data/storage_2
[group3]
group_name=group3
storage_server_port=23002
store_path_count=1
store_path0=/usr/local/fdfs/data/storage_3
storage.conf

group_name=group1
base_path=/usr/local/fdfs/data/storage_1
store_path0=/usr/local/fdfs/data/storage_1
tracker_server=192.168.1.128:22122
http.server_port=8888

storage_2.conf

group_name=group2
port=23001
base_path=/usr/local/fdfs/data/storage_2
store_path0=/usr/local/fdfs/data/storage_2
tracker_server=192.168.1.128:22122
http.server_port=8889

storage_3.conf

group_name=group3
port=23002port=23002
base_path=/usr/local/fdfs/data/storage_3
store_path0=/usr/local/fdfs/data/storage_3
tracker_server=192.168.1.128:22122
http.server_port=8887
4.6.2 storage1相关配置文件
mod_fastdfs.conf

tracker_server=192.168.1.128:22122
storage_server_port=23000
group_name=group2
store_path0=/mnt/disk1/fastdfs_data/storage

group_count = 2
[group1]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/mnt/disk1/fastdfs_data/storage
[group2]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/mnt/disk1/fastdfs_data/storage
client.conf

tracker_server=192.168.1.128:22122
http.tracker_server_port=80
4.6.3 storage2 相关配置文件
mod_fastdfs.conf

tracker_server=192.168.1.128:22122
storage_server_port=23000
group_name=group3
store_path0=/mnt/disk1/fastdfs_data/storage

group_count = 2
[group1]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/mnt/disk1/fastdfs_data/storage
[group2]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/mnt/disk1/fastdfs_data/storage
client.conf

tracker_server=192.168.1.128:22122
http.tracker_server_port=80

4.7 配置启动nginx

Tracker服务器需要设定如何分配到Storage服务器
image.png image.png
Storage服务器需要监听相应的接口,指定到文件
image.png image.png

5.启动并测试

5.1开机自启动

tracker

编辑:vi /etc/rc.d/rc.local


image.png
storage1

编辑:vi /etc/rc.d/rc.local


image.png
storage2

编辑:vi /etc/rc.d/rc.local

image.png

5.2 关闭防火墙

 iptables -F

5.3 测试

// 执行如下命令,上传一张图片
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf xwz.jpg

// 返回路径。
[root@guanz opt]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf xwz.jpg
group3/M00/00/03/wKgBgmBAsFKAEzpwAAG_bqug_v8373.jpg

浏览器输入地址:http://192.168.1.128:12345/group3/M00/00/03/wKgBgmBAsFKAEzpwAAG_bqug_v8373.jpg

image.png

至此,fastdfs服务搭建完成。

上一篇下一篇

猜你喜欢

热点阅读