FastDFS(二)搭建单体应用

1 安装FastDFS环境

跟踪服务器(Tracker Server):192.168.0.188
存储服务器(Storage Server):192.168.0.188
操作系统:centOS7
用户:root
数据存储: /fastdfs
相关的软件下载:https://pan.baidu.com/s/1vl-2SECHU7Xkvdawqm6Gqg
提取码:ujlb
将软件下载好后放置在/usr/local/src

1.1 安装需要的依赖包

yum install make cmake gcc gcc-c++

1.2 安装libfatscommon

cd /usr/local/src
#安装unzip 命令: yum install -y unzip zip
unzip libfastcommon-master.zip
cd libfastcommon-master
## 编译、安装
./make.sh
./make.sh install

1.3 安装FastDFS

cd /usr/local/src
tar -xzvf FastDFS_v5.08.tar.gz
cd FastDFS
./make.sh
./make.sh install

1.4 关闭防火墙

为了方便后面的操作,本实例直接选择关闭防火墙

#查看防火墙状态是否开启
systemctl status firewalld
#关闭防火墙(重启服务器后会重新打开防火墙)
systemctl stop firewalld
#永久关闭防火墙
systemctl disable firewalld

2 配置Tracker监听器

2.1 配置tracker的配置文件,并且进行重命名

cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

2.2 修改tracker配置文件

vim /etc/fdfs/tracker.conf

#修改内容如下:
base_path=/fastdfs/tracker  # Tracker 数据和日志目录地址(根目录必须存在,子目录会自动创建)

2.3 创建上面指定的地址

mkdir -p /fastdfs/tracker

2.4 启动Tracker

 /etc/init.d/fdfs_trackerd start

2.5 查看Tracker是否已启动

netstat -unltp|grep fdfs

出现下面图例,表示启动成功
在这里插入图片描述

2.6 查看Tracker的文件目录

ll /fastdfs/tracker

可以注意到已经出现了datalogs目录,那么表示你的tracker配置一切正常


3 配置storage

3.1 创建storage的配置文件

cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

3.2 编辑配置文件

vim /etc/fdfs/storage.conf
#修改的内容如下:
base_path=/fastdfs/storage          # 数据和日志文件存储根目录
store_path0=/fastdfs/storage        # 第一个存储目录
tracker_server=192.168.0.188:22122 # tracker服务器IP和端口

3.3 创建storage的存储目录

mkdir -p /fastdfs/storage

3.4 启动storage

/etc/init.d/fdfs_storaged start

3.5 查看Tracker和Storage是否在进行通信

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

在这里插入图片描述

4 上传文件

4.1 项目地址

码云地址:https://gitee.com/qingkongshengxia/fastDFS

4.3 修改fastdfs-client.properties

在这里插入图片描述

4.2 执行的地方

在这里插入图片描述

5 配置nginx

5.1 安装编译 Nginx 所需的依赖包

yum install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel

5.2 安装Nginx

cd /usr/local/src/
tar -zxvf nginx-1.16.0.tar.gz
cd nginx-1.16.0
//使用默认配置
 ./configure
 //编译
 make
 //安装
 make install

5.3 查看Nginx的配置依赖情况

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

5.4 修改Nginx的配置

vim /usr/local/nginx/conf/nginx.conf
添加如下行,将 /group1/M00 映射到 /fastdfs/storage/data
location /group1/M00 {
    alias /fastdfs/storage/data;
}

在这里插入图片描述

5.5 开启Nginx以及相关可能的操作

/usr/local/nginx/sbin/nginx

当你修改完nginx.conf时候,需要重新启动Nginx,使用这样的命令 /usr/local/nginx/sbin/nginx -s reload
当你想要停止nginx时 /usr/local/nginx/sbin/nginx -s stop
强制退出nginx /usr/local/nginx/sbin/nginx -s quit

5.6 查看Nginx是否开启

ps aux|grep nginx

在这里插入图片描述

5.7 通过http访问图片

在这里插入图片描述

5.8 上面的问题

不知道你是否意识到,我读取图片,其实并没有使用到tracker,而是直接通过Nginx来访问对应的图片位置,这样可以做到单体应用。在我们搭建fastDFS集群的时候,照片会同步到一个组内的所有storage,在大量用户访问的情况下,nginx会进行负载均衡,而在负载均衡的条件下,可能有几个storage内数据还没有被同步好,那么会导致照片异常,那么如何解决上面的异常呢?请看第六点


6 配置fastdfs-nginx-module

6.1 fastdfs-nginx-module

1、fastdfs-nginx-module 作用说明
FastDFS通过Tracker服务器,将文件放在Storage服务器存储,但是同组存储服务器之间需要进入文件复制,有同步延迟的问题。假设Tracker服务器将文件上传到了ip01,上传成功后文件ID已经返回给客户端。此时FastDFS存储集群机制会将这个文件同步到同组存储ip02,在文件还没有复制完成的情况下,客户端如果用这个文件ID在ip02上取文件,就会出现文件无法访问的错误。而fastdfs-nginx-module可以重定向文件连接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。(解压后的fastdfs-nginx-module在nginx安装时使用)

6.2 解压fastdfs-nginx-module

cd /usr/local/src
tar -xzvf fastdfs-nginx-module_v1.16.tar.gz

6.3 修改fastdfs-nginx-module的配置文件

cd fastdfs-nginx-module/src
vim config

CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"中的local去除,即
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

6.4 修改Nginx的依赖配置

#关闭nginx
/usr/local/nginx/sbin/nginx -s stop
#开始重新配置nginx
cd /usr/local/src/
cd nginx-1.16.0
./configure  --add-module=/usr/local/src/fastdfs-nginx-module/src
#编译以及安装
make && make install

6.5 修改fastdfs-nginx-module的内的mod_fastdfs.conf

作用是当我访问输入url的时候,nginx回去查询对应的tracker,来找到对应的storage

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

修改下面的数据

# 连接超时时间
connect_timeout=10  --根据需要修改--
# Tracker Server
tracker_server=192.168.0.188:22122  --修改为自己的ip--
# StorageServer 默认端口
storage_server_port=23000
# 如果文件ID的uri中包含/group**,则要设置为true
url_have_group_name = true   --需要修改--
# Storage 配置的store_path0路径,必须和storage.conf中的一致
store_path0=/fastdfs/storage  --需要修改--

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

cd /usr/local/src/FastDFS/conf
cp http.conf mime.types /etc/fdfs/

6.7 修改nginx的配置文件

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

添加下面的代码块

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

在这里插入图片描述

6.8 开启nginx

/usr/local/nginx/sbin/nginx

下面就是你直接通过Chrome来访问图片了
在这里插入图片描述

7 配置开机启动

7.1 修改rc.local文件可以被执行

# 这个文件可以在开启的时候会被执行里面的内容
chmod +x /etc/rc.d/rc.local

7.2 添加需要开机启动的

/etc/init.d/fdfs_trackerd start
/etc/init.d/fdfs_storaged start
/usr/local/nginx/sbin/nginx

在这里插入图片描述

8 文献的来源

8.1特别感谢这几位大哥

阿尔法
贝塔
伽马

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值