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

环境准备

服务器主机名 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服务搭建完成。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容