FASTDFS单机服务搭建

1.准备材料:CENTOS

2.1安装nginx

2.2 CentOS安装GCC
安装FastDFS需要先将官网下载的源码进行编译,编译依赖gcc环境

[root@localhost ~]# yum -y install gcc-c++

ps:检查gcc-c++是否已经安装(如果已安装,执行 yum -y install gcc-c++ 也会提示)

2.3 安装libevent

[root@localhost ~]# yum -y install libevent

2.4 安装libfastcommon
libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS运行所需要的一些基础库。

下载地址: libevent选择合适的版本

[root@localhost ~]# cd /usr/local/src/    #切换到下载目录
[root@localhost src]# wget -O libfastcommon-1.0.39.tar.gz  https://codeload.github.com/happyfish100/libfastcommon/tar.gz/V1.0.39 #下载(如果下载慢 可以将下载好的文件上传到此目录)
[root@localhost src]# tar -zxvf libfastcommon-1.0.39.tar.gz      #解压
[root@localhost src]# cd libfastcommon-1.0.39/
# 安装
[root@localhost libfastcommon-1.0.39]# ./make.sh 

[root@localhost libfastcommon-1.0.39]# ./make.sh  install


2.5 安装FastDFS
下载地址:FastDFS

[root@localhost libfastcommon-1.0.39]# cd /usr/local/src/      #切换到下载目录

#下载(如果下载慢 可以将下载好的文件上传到此目录)
[root@localhost src]# wget -O fastdfs-5.11.tar.gz https://codeload.github.com/happyfish100/fastdfs/tar.gz/V5.11
[root@localhost src]# tar -zxvf fastdfs-5.11.tar.gz   #解压
[root@localhost src]# cd fastdfs-5.11/
#安装
[root@localhost fastdfs-5.11]# ./make.sh 
[root@localhost fastdfs-5.11]# ./make.sh  install

默认安装方式安装后的相应文件与目录

A、服务脚本:

/etc/init.d/fdfs_storaged
/etc/init.d/fdfs_trackerd

B、配置文件(这三个是作者给的样例配置文件)

/etc/fdfs/client.conf.sample
/etc/fdfs/storage.conf.sample
/etc/fdfs/tracker.conf.sample

C、命令工具在 /usr/bin/ 目录下:

fdfs_appender_test
fdfs_appender_test1
fdfs_append_file
fdfs_crc32
fdfs_delete_file
fdfs_download_file
fdfs_file_info
fdfs_monitor
fdfs_storaged
fdfs_test
fdfs_test1
fdfs_trackerd
fdfs_upload_appender
fdfs_upload_file
stop.sh
restart.sh

2.6 配置FastDFS跟踪器(Tracker)

进入 /etc/fdfs,复制 FastDFS 跟踪器样例配置文件 tracker.conf.sample,并重命名为 tracker.conf。

[root@localhost fastdfs-5.11]# cd /etc/fdfs/
[root@localhost fdfs]# cp tracker.conf.sample tracker.conf
[root@localhost fdfs]#  vim tracker.conf

编辑tracker.conf ,标🌳🌳🌳的需要修改下,其它的默认即可。

# 配置文件是否不生效,false 为生效
disabled=false

# 提供服务的端口
port=22122

# Tracker 数据和日志目录地址(根目录必须存在,子目录会自动创建)
base_path=/fastdfs/tracker 🌳🌳🌳

# HTTP 服务端口 默认8080 ,建议修改 防止冲突
http.server_port=9080 🌳🌳🌳

创建tracker基础数据目录,即base_path对应的目录

[root@localhost fdfs]# mkdir -p /fastdfs/tracker

防火墙中打开跟踪端口(默认的22122)

# vim /etc/sysconfig/iptables

添加如下端口行:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT

重启防火墙:

# service iptables restart

启动Tracker
初次成功启动,会在 /fdfsdfs/tracker/ (配置的base_path)下创建 data、logs 两个目录。

[root@localhost fdfs]# /etc/init.d/fdfs_trackerd start
[root@localhost fdfs]# service fdfs_trackerd start
[root@localhost fdfs]# systemctl start fdfs_trackerd

原文链接:https://blog.csdn.net/prcyang/article/details/89946190

查看 FastDFS Tracker 是否已成功启动

# netstat -tulnp|grep fdfs   # 22122端口正在被监听,则算是Tracker服务安装成功
   tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      27492/fdfs_trackerd 

关闭Tracker命令:
[root@localhost fdfs]# service fdfs_trackerd stop
[root@localhost fdfs]# systemctl stop fdfs_trackerd #centos7 推荐
[root@localhost fdfs]# /etc/init.d/fdfs_trackerd stop

设置Tracker开机启动

# chkconfig fdfs_trackerd on

#systemctl enable fdfs_trackerd.service
或者:
# vim /etc/rc.d/rc.local
加入配置:
/etc/init.d/fdfs_trackerd start

2.7 配置 FastDFS 存储 (Storage)
配置文件详细说明参考:FastDFS 配置文件详解

进入 /etc/fdfs 目录,复制 FastDFS 存储器样例配置文件 storage.conf.sample,并重命名为 storage.conf

# cd /etc/fdfs
# cp storage.conf.sample storage.conf
# vim storage.conf

编辑storage.conf
标🌳🌳🌳的需要修改,其它的默认即可。

# 配置文件是否不生效,false 为生效
disabled=false 

# 指定此 storage server 所在 ()
group_name=group1

# storage server 服务端口
port=23000

# 心跳间隔时间,单位为秒 (这里是指主动向 tracker server 发送心跳)
heart_beat_interval=30

# Storage 数据和日志目录地址(根目录必须存在,子目录会自动生成)  ( :这里不是上传的文件存放的地址,之前版本是的,在某个版本后更改了)
base_path=/fastdfs/storage/base🌳🌳🌳

# 存放文件时 storage server 支持多个路径。这里配置存放文件的基路径数目,通常只配一个目录。
store_path_count=1


# 逐一配置 store_path_count 个路径,索引号基于 0
# 如果不配置 store_path0,那它就和 base_path 对应的路径一样。
store_path0=/fastdfs/storage  🌳🌳🌳

# FastDFS 存储文件时,采用了两级目录。这里配置存放文件的目录个数。 
# 如果本参数只为 N(如: 256),那么 storage server 在初次运行时,会在 store_path 下自动创建 N * N 个存放文件的子目录。
subdir_count_per_path=256

# tracker_server 的列表 ,会主动连接 tracker_server
# 有多个 tracker server 时,每个 tracker server 写一行
tracker_server=192.168.0.200:22122🌳🌳🌳
tracker_server=192.168.0.201:22122

# 允许系统同步的时间段 (默认是全天) 。一般用于避免高峰同步产生一些问题而设定。
sync_start_time=00:00
sync_end_time=23:59
# 访问端口 默认80  建议修改 防止冲突
http.server_port=9888🌳🌳🌳

创建Storage基础数据目录,对应base_path目录

# 对应base_path
# mkdir -p /fastdfs/storage/base
 
# 这是配置的store_path0路径,有多个要创建多个
# mkdir -p /fastdfs/storage/

防火墙中打开存储器端口(默认的 23000)

# vim /etc/sysconfig/iptables

添加如下端口行:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT

重启防火墙:

# service iptables restart

启动 Storage
启动Storage前确保Tracker是启动的。初次启动成功,会在 /fastdfs/storage/base(base_path) 目录下创建 data、 logs 两个目录。

可以用这种方式启动
# /etc/init.d/fdfs_storaged start
# service fdfs_storaged start
# systemctl start fdfs_storaged  #centos7 推荐

查看 Storage 是否成功启动,

# netstat -unltp|grep fdfs #23000 端口正在被监听,就算 Storage 启动成功。
tcp        0      0 0.0.0.0:23000           0.0.0.0:*               LISTEN      28834/fdfs_storaged 
# systemctl status fdfs_storaged # 查看服务状态
 fdfs_storaged.service - LSB: FastDFS storage server
   Loaded: loaded (/etc/rc.d/init.d/fdfs_storaged; bad; vendor preset: disabled)
   Active: active (running) since  2019-05-09 09:22:53 CST; 2s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 23015 ExecStart=/etc/rc.d/init.d/fdfs_storaged start (code=exited, status=0/SUCCESS)
    Tasks: 1
   Memory: 184.0K
   CGroup: /system.slice/fdfs_storaged.service
           └─23023 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
 
5 09 09:22:53 localhost.localdomain systemd[1]: Starting LSB: FastDFS storage server...
5 09 09:22:53 localhost.localdomain fdfs_storaged[23015]: Starting FastDFS storage server:
5 09 09:22:53 localhost.localdomain systemd[1]: Started LSB: FastDFS storage server.

关闭Storage

[root@localhost fdfs]# service fdfs_storaged stop
[root@localhost fdfs]# systemctl stop fdfs_storaged #centos7 推荐
[root@localhost fdfs]# /etc/init.d/fdfs_storaged stop

查看Storage和Tracker是否在通信:

# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf
[2019-05-09 11:34:09] DEBUG - base_path=/fastdfs/storage/base, connect_timeout=30, network_timeout=60, tracker_server_count=2, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0
 
server_count=2, server_index=0
 
tracker server is 192.168.0.200:22122
 
group count: 1
 
Group 1:
group name = group1
disk total space = 51175 MB
disk free space = 14251 MB
trunk free space = 0 MB
storage server count = 2
active server count = 1
storage server port = 23000
storage HTTP port = 9888
store path count = 1
subdir count per path = 256
current write server index = 0
current trunk file id = 0
 
    Storage 1:
        id = 192.168.0.200
        ip_addr = 192.168.0.200 (localhost.localdomain)  ACTIVE
        。。。
     Storage 2:
        id = 192.168.0.201
        ip_addr = 192.168.0.201  WAIT_SYNC
 

设置 Storage 开机启动

# chkconfig fdfs_storaged on
# chkconfig fdfs_storaged on

#systemctl enable fdfs_storaged.service  (推荐)
或者:
# vim /etc/rc.d/rc.local
加入配置:
/etc/init.d/fdfs_storaged  start 

Storage 目录

同 Tracker,Storage 启动成功后,在base_path 下创建了data、logs目录,记录着 Storage Server 的信息。
在 store_path0/data 目录下,创建了N*N个子目录:

[root@localhost ~]# ls /fastdfs/storage/data/
00  05  0A  0F  14  19  1E  23  28  2D  32  37  3C  41  46  4B  50  55  5A  5F  64  69  6E  73  78  7D  82  87  8C  91  96  9B  A0  A5  AA  AF  B4  B9  BE  C3  C8  CD  D2  D7  DC  E1  E6  EB  F0  F5  FA  FF
01  06  0B  10  15  1A  1F  24  29  2E  33  38  3D  42  47  4C  51  56  5B  60  65  6A  6F  74  79  7E  83  88  8D  92  97  9C  A1  A6  AB  B0  B5  BA  BF  C4  C9  CE  D3  D8  DD  E2  E7  EC  F1  F6  FB
02  07  0C  11  16  1B  20  25  2A  2F  34  39  3E  43  48  4D  52  57  5C  61  66  6B  70  75  7A  7F  84  89  8E  93  98  9D  A2  A7  AC  B1  B6  BB  C0  C5  CA  CF  D4  D9  DE  E3  E8  ED  F2  F7  FC
03  08  0D  12  17  1C  21  26  2B  30  35  3A  3F  44  49  4E  53  58  5D  62  67  6C  71  76  7B  80  85  8A  8F  94  99  9E  A3  A8  AD  B2  B7  BC  C1  C6  CB  D0  D5  DA  DF  E4  E9  EE  F3  F8  FD
04  09  0E  13  18  1D  22  27  2C  31  36  3B  40  45  4A  4F  54  59  5E  63  68  6D  72  77  7C  81  86  8B  90  95  9A  9F  A4  A9  AE  B3  B8  BD  C2  C7  CC  D1  D6  DB  E0  E5  EA  EF  F4  F9  FE

2.8 上传测试
修改 Tracker 服务器中的客户端配置文件

# cd /etc/fdfs
# cp client.conf.sample client.conf
# vim client.conf

修改如下配置即可,其它默认。

# Client 的数据和日志目录
base_path=/fastdfs/client
 
# Tracker端口
tracker_server=192.168.0.200:22122

② 上传测试

在linux内部执行如下命令上传 namei.jpeg 图片

# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf namei.jpeg

上传成功后返回文件ID号:group1/M00/00/00/wKgz6lnduTeAMdrcAAEoRmXZPp870.jpeg
返回的文件ID由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接而成。

在这里插入图片描述
3、安装配置Nginx ,http访问文件
上面将文件上传成功了,但我们无法下载。因此安装Nginx作为服务器以支持Http方式访问文件。同时,后面安装FastDFS的Nginx模块也需要Nginx环境。

Nginx只需要安装到StorageServer所在的服务器即可,用于访问文件

# vim /usr/local/nginx/conf/nginx.conf
配置如下
server {
        listen       8081;
        server_name  192.168.0.200;
 
        location /group1/M00{
        alias /fastdfs/storage/data/;
         autoindex on;
 
       }
 
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
        root   html;
       }
    }

在浏览器访问之前上传的图片 http://192.168.0.200:8081/group1/M00/00/00/wKgz6lnduTeAMdrcAAEoRmXZPp870.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值