文件服务器(Fastdfs)部署

1、准备

1.1、安装环境及软件包

本部署手册为将文件服务器 Fastdfs 安装并部署到 CentOS服务器上的操作过程记录。

部署环境与软件及版本内容如下:

操作系统: CentOS 7 64位

Fastdfs: fastdfs-5.11.tar.gz

Fastdfs依赖: libfastcommon-1.0.39.tar.gz

nginx: nginx-1.15.7.tar.gz

nginx支持fastdfs模块: fastdfs-nginx-module-1.20.tar.gz

1.2、环境准备及依赖安装

安装目录

本次安装均在 /usr/local/目录下安装。下面针对安装包的操作均在 /usr/local下进行。

安装包获取

Fastdfs安装所需的安装包,阅读本文档时假设为已经下载到/usr/local目录下。

其他阅读人员如果想获取安装包可以到官方网站自行进行下载上传到服务器,或者通过wget

安装依赖

安装gcc编译器,如果已经安装则忽略本步骤。

执行命令:

> yum -y install gcc-c++

2、安装FastDFS

安装FastDFS需要依次安装libfastcommon、FastDFS。

2.1、编译安装libfastcommon

进入到存放libfastcommon安装包目录,执行解压命令解压安装包,进行编译、安装操作。

解压libfastcommon

执行命令:

> cd /usr/local
> tar -zxvf ./libfastcommon-1.0.39.tar.gz

编译、安装

> cd ./libfastcommon-1.0.39
> ./make.sh
> ./make.sh install

编译、安装结束之后,将libfastcommon.so 安装到了/usr/lib64/libfastcommon.so,但是Fastdfs主程序设置的lib目录是/usr/local/lib,所以需要创建软链接。

如果软链接已经存在,报出错误忽略即可。

执行命令:

> ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
> ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
> ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
> ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so 
2.2、编译安装FastDFS

同安装libfastcommon相同,进入到存放FastDFS安装包的目录,进行解压、编译、安装操作。

解压FastDFS

执行命令:

> cd /usr/local
> tar -zxvf ./fastdfs-5.11.tar.gz

编译、安装

> cd ./fastdfs-5.11
> ./make.sh
> ./make.sh install

设置命令软连接

如果想要使用 service命令启动,则需要创建如下软连接。

执行命令:

> ln -s /usr/bin/fdfs_trackerd   /usr/local/bin
> ln -s /usr/bin/fdfs_storaged   /usr/local/bin
> ln -s /usr/bin/stop.sh         /usr/local/bin
> ln -s /usr/bin/restart.sh      /usr/local/bin
2.3、配置FastDFS跟踪器(Tracker)

修改跟踪器配置文件

FastDFS提供了配置文件模板,通过复制命令复制配置文件模板并进行修改。

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

执行命令:

> cd /etc/fdfs
> cp tracker.conf.sample tracker.conf
> vim ./tracker.conf

vim编辑器打开配置文件后,修改配置文件中配置项如下:

# Tracker 数据和日志目录地址(根目录必须存在,子目录会自动创建), 可以自行修改目录名称
base_path=/home/yuqing/fastdfs/tracker
# HTTP 服务端口,默认为8080.如果需要配置nginx则需要设置为80
http.server_port=80

创建base_path配置项的目录。

执行命令:

> mkdir -p /home/yuqing/fastdfs/tracker
2.4、配置FastDFS存储器(Storage)

修改存储器配置文件

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

执行命令:

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

vim编辑器打开配置文件后,修改配置文件中配置项如下:

# Storage 数据和日志目录地址(根目录必须存在,子目录会自动生成)
base_path=/home/yuqing/fastdfs/storage
# 逐一配置 store_path_count 个路径,索引号基于 0。
# 如果不配置 store_path0,那它就和 base_path 对应的路径一样。
store_path0=/home/yuqing/fastdfs/file
# tracker_server 的列表 ,会主动连接 tracker_server
# 有多个 tracker server 时,每个 tracker server 写一行
tracker_server=tracker的ip地址:22122
# 访问端口,默认8888,如果需要使用nginx则需要配置成80
http.server_port=80

创建base_pathstore_path0配置项的目录。

执行命令:

> mkdir -p /home/yuqing/fastdfs/storage
> mkdir -p /home/yuqing/fastdfs/file
2.5、配置FastDFS防火墙

由于防火墙的限制,如果没有关闭防火墙或者开放对应端口则会导致无法正常访问FastDFS。

CentOS防火墙有 iptables 和 firewall,配置方式不同,下面全部列举出来。需要注意的是CentOS7操作系统默认使用firewall防火墙。

配置防火墙有两种方式:关闭防火墙(不安全)和开放某端口。

FastDFS中跟踪器(Tracker)和存储器(Storage)的端口分别为:22122(Tracker)和23000(Storage),执行命令开放端口,并重新载入防火墙配置。

2.5.1、firewll防火墙配置(CentOS7默认)

关闭防火墙和开放端口二选一即可。

关闭防火墙

执行命令:

# 关闭防火墙命令
> systemctl stop firewalld
# 关闭开机启动命令
> systemctl disable firewalld

开放端口

执行命令:

> firewall-cmd --zone=public --add-port=22122/tcp --permanent
> firewall-cmd --zone=public --add-port=23000/tcp --permanent
# 为Nginx预留
> firewall-cmd --zone=public --add-port=80/tcp --permanent
> firewall-cmd --reload
2.5.2、iptables防火墙配置

关闭防火墙

# 临时关闭防火墙
> servcie iptables stop
# 永久关闭防火墙
> chkconfig iptables off

开放端口

使用vim编辑器打开防火墙配置文件,添加开放的端口配置信息。

执行命令:

> vim /etc/sysconfig/iptables

添加如下配置:

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

#为Nginx预留
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

保存配置文件之后,重启防火墙。

执行命令:

> service iptables restart
2.6、启动FastDFS

启动FastDFS需要启动两部分,跟踪器和存储器。

2.6.1、启动跟踪器

启动跟踪器

跟踪器(Tracker)初次成功启动,会在 /etc/fdfs/tracker.conf配置文件中 base_path配置项目录下创建data、logs两个目录。

启动方式有两种。

执行命令:

# 直接使用命令启动
> /etc/init.d/fdfs_trackerd start

或者执行如下命令:

# 如果编译安装FastDFS之后创建了启动命令软连接,则可以使用本命令启动服务
> service fdfs_trackerd start

设置跟踪器服务开机启动

设置跟踪器开机启动

执行命令:

> chkconfig fdfs_trackerd on

查看跟踪器端口是否被监听

执行命令:

> netstat -unltp|grep fdfs

看到如下信息则表示跟踪器启动成功

tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      9540/fdfs_trackerd

关闭跟踪器(如果有需要)

执行命令:

> service fdfs_trackerd stop
2.6.2、启动存储器

启动存储器

存储器(Storage)初次成功启动,会在 /etc/fdfs/storage.conf配置文件中 base_path配置项目录下创建data、logs两个目录。

启动方式有两种。

执行命令:

# 直接使用命令启动
> /etc/init.d/fdfs_storaged start

或者执行如下命令:

# 如果编译安装FastDFS之后创建了启动命令软连接,则可以使用本命令启动服务
> service fdfs_storaged start

设置存储器服务开机启动

设置存储器开机启动

执行命令:

> chkconfig fdfs_storaged on

查看存储器端口是否被监听

执行命令:

> netstat -unltp|grep fdfs

看到如下信息则表示跟踪器启动成功

tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      9540/fdfs_trackerd  
tcp        0      0 0.0.0.0:23000           0.0.0.0:*               LISTEN      9570/fdfs_storaged  

关闭存储器(如果有需要)

执行命令:

> service fdfs_storaged stop

查看跟踪器与存储器是否正常通信

在这里插入图片描述

如上状态为ACTIVE则表示通信正常。

2.7、文件上传测试

配置客户端

FastDFS服务全部启动成功后,可以进行本地文件上传,测试是否能上传成功。

修改跟踪器服务器中客户顿配置文件。

执行命令:

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

修改配置文件中如下配置:

# Client 的数据和日志目录
base_path=/home/yuqing/fastdfs/client
# Tracker端口
tracker_server=tracker的ip地址:22122

上传测试

在CentOS系统内执行命令上传测试图片命令。

执行命令:

> /usr/bin/fdfs_upload_file /etc/fdfs/client.conf test.jpg
group1/M00/00/00/CjMOMFwA0v6Aaw-7AAQ6_lOyM18292.jpg

返回的文件ID由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接而成。

3、配置Nginx

上面将文件上传成功了,但我们无法下载。因此安装Nginx作为服务器以支持Http方式访问文件。同时,后面安装FastDFS的Nginx模块也需要Nginx环境。

Nginx只需要安装到StorageServer所在的服务器即可,用于访问文件。我这里由于是单机,TrackerServer和StorageServer在一台服务器上。

需要检查服务器上是否已经安装了Nginx,如果未安装Nginx则查看 安装Nginx 章节。如果已经安装了Nginx则跳过安装Nginx章节即可。

3.1、安装Nginx

依赖安装

安装Nignx之前需要安装Nginx所需环境。

安装gcc、pcre pcre-devel、zlib、OpenSSL。

执行命令:

> yum install gcc-c++
> yum install -y pcre pcre-devel
> yum install -y zlib zlib-devel
> yum install -y openssl openssl-devel

安装Nginx

在准备阶段已经下载了Nginx安装包,此处进入/etc/fdfs目录处理。

执行命令:

> cd /usr/local
> tar -zxvf ./nginx-1.15.7.tar.gz
> cd ./nginx-1.15.7

开始编译项目并且安装Nginx

> ./configure --prefix=/usr/local/nginx
> ./make.sh
> ./make.sh install

启动Nginx服务

执行命令:

> /usr/local/nginx/sbin/nginx

设置开机启动

执行命令:

> vim /etc/rc.local

添加一行

# 添加一行:
/usr/local/nginx/sbin/nginx

设置执行权限

> chmod 755 rc.local

访问文件

修改nginx.conf文件。

执行命令:

> /usr/local/nginx/conf/nginx.conf

添加如下内容,将 /group1/M00映射到/home/yuqing/fastdfs/file/data

location /group1/M00 {
    alias /home/yuqing/fastdfs/file/data;
}

重启Nginx

执行命令:

> /usr/local/nginx/sbin/nginx -s reload
3.2、FastDFS配置Nginx模块(原本就安装Nginx)

FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储, 但是同组存储服务器之间需要进行文件复制, 有同步延迟的问题。

假设 Tracker 服务器将文件上传到了 192.168.51.128,上传成功后文件 ID已经返回给客户端。

此时 FastDFS 存储集群机制会将这个文件同步到同组存储 192.168.51.129,在文件还没有复制完成的情况下,客户端如果用这个文件 ID 在 192.168.51.129 上取文件,就会出现文件无法访问的错误。

而 fastdfs-nginx-module 可以重定向文件链接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。

fastdfs-nginx-module-1.20解压

准备阶段已经准备了fastdfs-nginx-module-1.20软件包。进入如/usr/local

执行命令:

> cd /usr/local
> tar -zxvf ./fastdfs-nginx-module-1.20.tar.gz

配置Nginx

将astdfs-nginx-module-1.20添加到nginx中;

首先关闭Ngixn服务

> /usr/local/nginx/sbin/ngix -s stop

进入Nginx安装包根目录

> cd /usr/local/nginx-1.15.7

执行命令添加模块

> ./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module-1.20/src/
> make
> make install

注意:

在执行make操作时,可能会报出:

/usr/local/include/fastdfs/fdfs_define.h:15:27: 致命错误: common_define.h:没有那个文件或目录

如果出现以上错误信息,解决方法如下:

vim /usr/local/fastdfs-nginx-module-1.20/src/config

修改内容如下:

ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

然后重新执行configuremakemake install即可。

查看Nignx模块

执行命令:

> /usr/local/nginx/sbin/nginx -V

显示安装列表中存在fastdfs模块则表示安装成功

在这里插入图片描述

修改配置文件

复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并且进行修改。

执行命令:

> cp /usr/local/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs/
> vim /etc/fdfs/mod_fastdfs.conf

修改如下配置内容,其他默认。

# 连接超时时间
connect_timeout=10
# Tracker Server
tracker_server=tracker的ip地址:22122
# StorageServer 默认端口
storage_server_port=23000
# 如果文件ID的uri中包含/group**,则要设置为true
url_have_group_name=true
# Storage 配置的store_path0路径,必须和storage.conf中的一致
store_path0=/home/yuqing/fastdfs/file

复制 FastDFS 的部分配置文件到/etc/fdfs 目录:

> cp http.conf mime.types /etc/fdfs/

修改nginx.conf配置文件

执行命令:

> vim /usr/local/nginx/conf/nginx.conf

在80端口下添加fastdfs-nginx模块

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

注意:

此处需要配合上面章节中对跟踪器和存储器配置文件配置时 http.server_port修改值为80端口!

location 的配置,如果有多个group则配置location ~/group([0-9])/M00 ,没有则不用配group。

启动Nginx

执行命令:

> /usr/local/nginx/sbin/nginx

至此FastDFS单机就安装成功。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值